public long ProcessCompanyAddresses(List <CompanyAddressObject> addresses, long importerId) { try { if (!addresses.Any()) { return(-2); } using (var db = new ImportPermitEntities()) { var count = 0; addresses.ForEach(i => { var newAdd = new Address { AddressLine1 = i.AddressLine1, AddressLine2 = i.AddressLine2, CityId = i.CityId, LastUpdated = DateTime.Now.ToString("yyyy/MM/dddd") }; var addInfo = db.Addresses.Add(newAdd); db.SaveChanges(); var cmAdd = new ImporterAddress { AddressId = addInfo.AddressId, AddressTypeId = i.AddressTypeId, ImporterId = importerId, LastUpdated = DateTime.Now.ToString("yyyy/MM/dddd") }; db.ImporterAddresses.Add(cmAdd); db.SaveChanges(); count++; }); return(count == addresses.Count() ? 5 : -1); } } catch (DbEntityValidationException e) { var str = ""; foreach (var eve in e.EntityValidationErrors) { str += string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State) + "\n"; str = eve.ValidationErrors.Aggregate(str, (current, ve) => current + (string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage) + " \n")); } ErrorLogger.LoggError(e.StackTrace, e.Source, str); return(0); } }
public long ProcessCompanyProfileAndAddresses(GeneralInformationObject info) { try { if (info.CompanyId < 1) { return(-2); } using (var db = new ImportPermitEntities()) { var duplicates = db.Importers.Where(s => s.Name.Trim().ToLower() == info.Name.Trim().ToLower()).ToList(); if (!duplicates.Any()) { return(-3); } var companies = db.Importers.Where(s => s.Id == info.CompanyId).Include("ImporterAddresses").ToList(); if (!companies.Any()) { return(-3); } var j = companies[0]; j.RCNumber = info.RCNumber; j.TIN = info.TIN; j.Name = info.Name; j.StructureId = info.StructureId; j.ShortNme = info.ShortNme; j.TotalStaff = info.TotalStaff; j.TotalExpatriate = info.TotalExpatriate; j.BusinessCommencementDate = info.BusinessCommencementDate; db.Entry(j).State = EntityState.Modified; db.SaveChanges(); if (info.CompanyAddressObjects.Any()) { var existingAddresses = j.ImporterAddresses.ToList(); info.CompanyAddressObjects.ForEach(i => { var existing = existingAddresses.Find(u => u.AddressId == i.AddressId); var add = db.Addresses.Find(i.AddressId); if (existing != null && existing.AddressId > 0 && add != null && add.AddressId > 0) { existing.AddressTypeId = i.AddressTypeId; existing.IsRegisteredSameAsOperational = i.IsRegisteredSameAsOperational; db.Entry(existing).State = EntityState.Modified; db.SaveChanges(); add.AddressLine1 = i.AddressLine1; add.CityId = i.CityId; add.LastUpdated = DateTime.Now.ToString("yyyy/MM/dddd"); db.Entry(existing).State = EntityState.Modified; db.SaveChanges(); } else { var newAdd = new Address { AddressLine1 = i.AddressLine1, AddressLine2 = i.AddressLine2, CityId = i.CityId, LastUpdated = DateTime.Now.ToString("yyyy/MM/dddd") }; var addInfo = db.Addresses.Add(newAdd); db.SaveChanges(); var cmAdd = new ImporterAddress { AddressId = addInfo.AddressId, AddressTypeId = i.AddressTypeId, ImporterId = info.CompanyId, LastUpdated = DateTime.Now.ToString("yyyy/MM/dddd") }; db.ImporterAddresses.Add(cmAdd); db.SaveChanges(); } }); } return(j.Id); } } catch (DbEntityValidationException e) { var str = ""; foreach (var eve in e.EntityValidationErrors) { str += string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State) + "\n"; str = eve.ValidationErrors.Aggregate(str, (current, ve) => current + (string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage) + " \n")); } ErrorLogger.LoggError(e.StackTrace, e.Source, str); return(0); } }