Ejemplo n.º 1
0
        /// <summary>
        /// Compare grabbed values with Database
        ///
        /// if already in database see if values match
        /// if not in database add it and put in result file
        ///
        /// StampDuty values : 1 = Y And 2 = N
        ///
        /// </summary>
        /// <param name="values"></param>
        /// <returns></returns>
        private void CompareData(Dictionary <string, string> values)
        {
            var res = new Dictionary <string, string>();

            try
            {
                foreach (var code in values)
                {
                    ETI_HK_StampDuty result = (from stampDuty in _hongKongDataContext.ETI_HK_StampDuties
                                               where stampDuty.Ric == code.Key
                                               select stampDuty).SingleOrDefault();

                    if (result == null)
                    {
                        if (code.Value.Length < 3)
                        {
                            _hongKongDataContext.ETI_HK_StampDuties.Add(
                                new ETI_HK_StampDuty
                            {
                                Ric = code.Key,
                                SubjectToStampDuty = (code.Value == "1" || code.Value == "12") ? "Y" : "N",
                                LastChange         = DateTime.Now
                            });
                            res.Add(code.Key, code.Value);
                        }
                    }
                    else
                    {
                        if ((result.SubjectToStampDuty == "N" && (code.Value == "1" || code.Value == "12")) ||
                            (result.SubjectToStampDuty == "Y" && (code.Value == "2" || code.Value == "13")))
                        {
                            res.Add(code.Key, code.Value);
                            result.SubjectToStampDuty = (code.Value == "1" || code.Value == "12") ? "Y" : "N";
                        }
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationError in dbEx.EntityValidationErrors.SelectMany(validationErrors => validationErrors.ValidationErrors))
                {
                    Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName,
                                           validationError.ErrorMessage);
                }
            }
            LogMessage("Saving changes in own database");
            _hongKongDataContext.SaveChanges();

            FormatResults(res);
            LogMessage("Generate result files");
            GenerateFile();
        }