public override bool UpdateData(int userId, int id, ref object dtoItem1, out Notification notification) { DTO.CostInvoice2 dtoItem = ((Newtonsoft.Json.Linq.JObject)dtoItem1).ToObject <DTO.CostInvoice2>(); notification = new Notification(); notification.Type = NotificationType.Success; try { using (var context = CreateContext()) { CostInvoice2 dbItem; if (id > 0) { dbItem = context.CostInvoice2.FirstOrDefault(s => s.CostInvoice2ID == id); if (dbItem == null) { notification.Type = NotificationType.Error; notification.Message = "Can not find data"; return(false); } } else { dbItem = new CostInvoice2(); dbItem.CostInvoice2UD = (context.CostInvoice2.Count() + 1).ToString().PadLeft(10, '0'); context.CostInvoice2.Add(dbItem); } //upload file Module.Framework.DAL.DataFactory fwFactory = new Module.Framework.DAL.DataFactory(); string tempFolder = FrameworkSetting.Setting.AbsoluteUserTempFolder + userId.ToString() + @"\"; if (dtoItem.File_HasChange.HasValue && dtoItem.File_HasChange.Value) { dtoItem.RelatedDocumentFile = fwFactory.CreateFilePointer(tempFolder, dtoItem.File_NewFile, dtoItem.RelatedDocumentFile, dtoItem.FriendlyName); } // converter.DTO2DB_CostInvoice2(dtoItem, ref dbItem); dbItem.UpdatedBy = userId; dbItem.UpdatedDate = DateTime.Now; dbItem.InvoiceDate = dtoItem.InvoiceDate.ConvertStringToDateTime(); dbItem.DueDate = dtoItem.DueDate.ConvertStringToDateTime(); dbItem.PaidDate = dtoItem.PaidDate.ConvertStringToDateTime(); context.CostInvoice2Client.Local.Where(o => o.CostInvoice2 == null).ToList().ForEach(o => context.CostInvoice2Client.Remove(o)); context.CostInvoice2Factory.Local.Where(o => o.CostInvoice2 == null).ToList().ForEach(o => context.CostInvoice2Factory.Remove(o)); context.SaveChanges(); dtoItem1 = GetData(dbItem.CostInvoice2ID, out notification); } return(true); } catch (Exception ex) { notification.Type = NotificationType.Error; notification.Message = ex.Message; if (ex.InnerException != null && !string.IsNullOrEmpty(ex.InnerException.Message)) { notification.DetailMessage.Add(ex.InnerException.Message); } return(false); } }
public void DTO2DB_CostInvoice2(DTO.CostInvoice2 dtoItem, ref CostInvoice2 dbItem) { // Mapping CostInvoice2Client. if (dtoItem.CostInvoice2Clients != null) { foreach (CostInvoice2Client item in dbItem.CostInvoice2Client.ToList()) { if (!dtoItem.CostInvoice2Clients.Select(s => s.CostInvoice2ClientID).Contains(item.CostInvoice2ClientID)) { dbItem.CostInvoice2Client.Remove(item); } } foreach (DTO.CostInvoice2Client dto in dtoItem.CostInvoice2Clients) { CostInvoice2Client item; if (dto.CostInvoice2ClientID < 0) { item = new CostInvoice2Client(); dbItem.CostInvoice2Client.Add(item); } else { item = dbItem.CostInvoice2Client.FirstOrDefault(s => s.CostInvoice2ClientID == dto.CostInvoice2ClientID); } if (item != null) { AutoMapper.Mapper.Map <DTO.CostInvoice2Client, CostInvoice2Client>(dto, item); } } } // Mapping CostInvoice2Factory. if (dtoItem.CostInvoice2Factories != null) { foreach (CostInvoice2Factory item in dbItem.CostInvoice2Factory.ToList()) { if (!dtoItem.CostInvoice2Factories.Select(s => s.CostInvoice2FactoryID).Contains(item.CostInvoice2FactoryID)) { dbItem.CostInvoice2Factory.Remove(item); } } foreach (DTO.CostInvoice2Factory dto in dtoItem.CostInvoice2Factories) { CostInvoice2Factory item; if (dto.CostInvoice2FactoryID < 0) { item = new CostInvoice2Factory(); dbItem.CostInvoice2Factory.Add(item); } else { item = dbItem.CostInvoice2Factory.FirstOrDefault(s => s.CostInvoice2FactoryID == dto.CostInvoice2FactoryID); } if (item != null) { AutoMapper.Mapper.Map <DTO.CostInvoice2Factory, CostInvoice2Factory>(dto, item); } } } AutoMapper.Mapper.Map <DTO.CostInvoice2, CostInvoice2>(dtoItem, dbItem); }