VAGSuite.Tools.UpdateChecksum C# (CSharp) Method

UpdateChecksum() public method

public UpdateChecksum ( string filename, bool verifyOnly ) : ChecksumResultDetails
filename string
verifyOnly bool
return ChecksumResultDetails
        public ChecksumResultDetails UpdateChecksum(string filename, bool verifyOnly)
        {
            byte[] allBytes;
            ChecksumResult res = new ChecksumResult(); ;
            ChecksumResultDetails result = new ChecksumResultDetails();

            EDCFileType fileType = DetermineFileType(filename, false);
            switch (fileType)
            {
                case EDCFileType.EDC15P:
                case EDCFileType.EDC15P6:
                    allBytes = File.ReadAllBytes(filename);
                    res = CalculateEDC15PChecksum(filename, allBytes, verifyOnly, out result);
                    break;
                case EDCFileType.EDC15V:
                    // EDC15VM+ is similar to EDC15P
                    allBytes = File.ReadAllBytes(filename);
                    res = CalculateEDC15VMChecksum(filename, allBytes, verifyOnly, out result);
                    break;
                case EDCFileType.EDC15C:
                    //TODO: Implement EDC15C checksum routine here
                    break;
                case EDCFileType.EDC15M:
                    //TODO: Implement EDC15M checksum routine here
                    break;
                case EDCFileType.EDC16:
                    //TODO: Implement EDC16x checksum routine here
                    break;
                case EDCFileType.EDC17:
                    //TODO: Implement EDC17x checksum routine here
                    break;
                case EDCFileType.MSA15:
                case EDCFileType.MSA12:
                case EDCFileType.MSA11:
                    //TODO: Implement MSA15 checksum routine here

                    // this should be Bosch TDI V3.1 (Version 2.04)

                   /* result.TypeResult = ChecksumType.VAG_EDC15P_V41;
                    allBytes = File.ReadAllBytes(filename);
                    //allBytes = reverseEndian(allBytes);
                    MSA15_checksum msa15chks = new MSA15_checksum();

                    res = msa15chks.tdi41_checksum_search(allBytes, (uint)allBytes.Length, false);
                    result.NumberChecksumsTotal = msa15chks.ChecksumsFound;
                    result.NumberChecksumsFail = msa15chks.ChecksumsIncorrect;
                    result.NumberChecksumsOk = msa15chks.ChecksumsFound - msa15chks.ChecksumsIncorrect;
                    if (res == ChecksumResult.ChecksumOK)
                    {
                        //Console.WriteLine("Checksum matched");
                        result.CalculationOk = true;
                    }
                    else if (res == ChecksumResult.ChecksumFail)
                    {
                        Console.WriteLine("UpdateChecksum: Checksum failed " + filename);
                        if (!verifyOnly)
                        {
                            File.WriteAllBytes(filename, allBytes);
                            result.CalculationOk = true;
                            Console.WriteLine("UpdateChecksum: Checksum fixed");
                        }

                    }*/
                    break;
                case EDCFileType.MSA6:
                    //TODO: Implement MSA6 checksum routine here
                    break;
            }
            if (result.CalculationOk) result.CalculationResult = ChecksumResult.ChecksumOK;
            return result;
        }