public override bool UpdateData(int userId, int id, ref object dtoItem, out Notification notification) { DTO.WorkCenterDto workCenter = ((Newtonsoft.Json.Linq.JObject)dtoItem).ToObject <DTO.WorkCenterDto>(); notification = new Notification() { Type = NotificationType.Success }; try { using (var context = CreateContext()) { DAL.WorkCenter dbItem; if (id == 0) { dbItem = context.WorkCenter.FirstOrDefault(o => o.WorkCenterUD.Equals(workCenter.WorkCenterUD)); if (dbItem != null) { notification.Type = NotificationType.Error; notification.Message = workCenter.WorkCenterUD + " is existed in Work Center!"; return(false); } dbItem = new DAL.WorkCenter(); context.WorkCenter.Add(dbItem); } else { dbItem = context.WorkCenter.FirstOrDefault(o => o.WorkCenterID == id); if (dbItem == null) { notification.Type = NotificationType.Error; notification.Message = "Can not found data!"; return(false); } } converter.DTO2DB_WorkCenter(userId, workCenter, ref dbItem); context.WorkCenterDetail.Local.Where(o => o.WorkCenter == null).ToList().ForEach(o => context.WorkCenterDetail.Remove(o)); context.SaveChanges(); dtoItem = GetData(userId, dbItem.WorkCenterID, out notification); } return(true); } catch (Exception ex) { notification.Type = NotificationType.Error; notification.Message = ex.Message; return(false); } }
public void DTO2DB_WorkCenter(int userID, DTO.WorkCenterDto dtoItem, ref DAL.WorkCenter dbItem) { // Mapping workcenter. AutoMapper.Mapper.Map <DTO.WorkCenterDto, DAL.WorkCenter>(dtoItem, dbItem); // Mapping workcenter details. if (dtoItem.WorkCenterDetails != null) { foreach (WorkCenterDetail dbWorkCenterDetail in dbItem.WorkCenterDetail.ToList()) { if (!dtoItem.WorkCenterDetails.Select(s => s.WorkCenterDetailID).Contains(dbWorkCenterDetail.WorkCenterDetailID)) { dbItem.WorkCenterDetail.Remove(dbWorkCenterDetail); } } foreach (DTO.WorkCenterDetailDTO dtoWorkCenterDetail in dtoItem.WorkCenterDetails.ToList()) { WorkCenterDetail dbWorkCenterDetail; if (dtoWorkCenterDetail.WorkCenterDetailID < 0) { dbWorkCenterDetail = new WorkCenterDetail(); dbItem.WorkCenterDetail.Add(dbWorkCenterDetail); } else { dbWorkCenterDetail = dbItem.WorkCenterDetail.FirstOrDefault(o => o.WorkCenterDetailID == dtoWorkCenterDetail.WorkCenterDetailID); } if (dbWorkCenterDetail != null) { AutoMapper.Mapper.Map <DTO.WorkCenterDetailDTO, WorkCenterDetail>(dtoWorkCenterDetail, dbWorkCenterDetail); dbWorkCenterDetail.UpdatedBy = userID; dbWorkCenterDetail.UpdatedDate = DateTime.Now; if (dtoWorkCenterDetail.WorkCenterDetailID <= 0) { dbWorkCenterDetail.CreatedBy = userID; dbWorkCenterDetail.CreatedDate = DateTime.Now; } } } } }