public override bool DeleteData(int id, out Library.DTO.Notification notification) { notification = new Library.DTO.Notification() { Type = Library.DTO.NotificationType.Success }; try { using (WarehouseTransportMngEntities context = CreateContext()) { WarehouseTransport dbItem = context.WarehouseTransport.FirstOrDefault(o => o.WarehouseTransportID == id); if (dbItem == null) { notification.Message = "receipt not found!"; return(false); } else { context.WarehouseTransport.Remove(dbItem); context.SaveChanges(); return(true); } } } catch (Exception ex) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = ex.Message; if (ex.InnerException != null && !string.IsNullOrEmpty(ex.InnerException.Message)) { notification.DetailMessage.Add(ex.InnerException.Message); } return(false); } }
public override bool UpdateData(int id, ref DTO.WarehouseTransportMng.WarehouseTransport dtoItem, out Library.DTO.Notification notification) { notification = new Library.DTO.Notification() { Type = Library.DTO.NotificationType.Success }; try { using (WarehouseTransportMngEntities context = CreateContext()) { WarehouseTransport dbItem = null; if (id == 0) { dbItem = new WarehouseTransport(); context.WarehouseTransport.Add(dbItem); } else { dbItem = context.WarehouseTransport.FirstOrDefault(o => o.WarehouseTransportID == id); } if (dbItem == null) { notification.Message = "receipt not found!"; return(false); } else { // check concurrency if (dbItem.ConcurrencyFlag != null && !dbItem.ConcurrencyFlag.SequenceEqual(Convert.FromBase64String(dtoItem.ConcurrencyFlag_String))) { throw new Exception(DALBase.Helper.TEXT_CONCURRENCY_CONFLICT); } //validate transfer qnt ValidateTransferQuantity(dtoItem); //convert dto to db converter.DTO2DB_WarehouseTransport(dtoItem, ref dbItem); context.WarehouseTransportProductDetail.Local.Where(o => o.WarehouseTransport == null).ToList().ForEach(o => context.WarehouseTransportProductDetail.Remove(o)); context.WarehouseTransportSparepartDetail.Local.Where(o => o.WarehouseTransport == null).ToList().ForEach(o => context.WarehouseTransportSparepartDetail.Remove(o)); context.SaveChanges(); if (id == 0) { context.WarehouseTransportMng_function_GenerateReceiptNo(dbItem.WarehouseTransportID, dbItem.Season); } //update ReceiptNo //Get return data dtoItem = GetData(dbItem.WarehouseTransportID, out notification); return(true); } } } catch (Exception ex) { notification.Type = Library.DTO.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_WarehouseTransport(DTO.WarehouseTransportMng.WarehouseTransport dtoItem, ref WarehouseTransport dbItem) { List <WarehouseTransportProductDetail> product_tobedeleted = new List <WarehouseTransportProductDetail>(); if (dtoItem.WarehouseTransportProductDetails != null) { //CHECK foreach (var dbDetail in dbItem.WarehouseTransportProductDetail.Where(o => !dtoItem.WarehouseTransportProductDetails.Select(s => s.WarehouseTransportProductDetailID).Contains(o.WarehouseTransportProductDetailID))) { product_tobedeleted.Add(dbDetail); } foreach (var dbDetail in product_tobedeleted) { dbItem.WarehouseTransportProductDetail.Remove(dbDetail); } //MAP foreach (var dtoDetail in dtoItem.WarehouseTransportProductDetails) { if (!dtoDetail.FromWarehouseAreaID.HasValue || !dtoDetail.ToWarehouseAreaID.HasValue || dtoDetail.FromWarehouseAreaID.Value == 0 || dtoDetail.ToWarehouseAreaID.Value == 0) { throw new Exception("You must fill-in 'From area' and 'To area' for all product"); } WarehouseTransportProductDetail dbDetail; if (dtoDetail.WarehouseTransportProductDetailID < 0) { dbDetail = new WarehouseTransportProductDetail(); dbItem.WarehouseTransportProductDetail.Add(dbDetail); } else { dbDetail = dbItem.WarehouseTransportProductDetail.FirstOrDefault(o => o.WarehouseTransportProductDetailID == dtoDetail.WarehouseTransportProductDetailID); } if (dbDetail != null) { AutoMapper.Mapper.Map <DTO.WarehouseTransportMng.WarehouseTransportProductDetail, WarehouseTransportProductDetail>(dtoDetail, dbDetail); } } } //Purchasing Invoice Sparepart Detail List <WarehouseTransportSparepartDetail> sparepart_tobedeleted = new List <WarehouseTransportSparepartDetail>(); if (dtoItem.WarehouseTransportSparepartDetails != null) { //CHECK foreach (var dbDetail in dbItem.WarehouseTransportSparepartDetail.Where(o => !dtoItem.WarehouseTransportSparepartDetails.Select(s => s.WarehouseTransportSparepartDetailID).Contains(o.WarehouseTransportSparepartDetailID))) { sparepart_tobedeleted.Add(dbDetail); } foreach (var dbDetail in sparepart_tobedeleted) { dbItem.WarehouseTransportSparepartDetail.Remove(dbDetail); } //MAP foreach (var dtoDetail in dtoItem.WarehouseTransportSparepartDetails) { if (!dtoDetail.FromWarehouseAreaID.HasValue || !dtoDetail.ToWarehouseAreaID.HasValue || dtoDetail.FromWarehouseAreaID.Value == 0 || dtoDetail.ToWarehouseAreaID.Value == 0) { throw new Exception("You must fill-in 'From area' and 'To area' for all sparepart"); } WarehouseTransportSparepartDetail dbDetail; if (dtoDetail.WarehouseTransportSparepartDetailID < 0) { dbDetail = new WarehouseTransportSparepartDetail(); dbItem.WarehouseTransportSparepartDetail.Add(dbDetail); } else { dbDetail = dbItem.WarehouseTransportSparepartDetail.FirstOrDefault(o => o.WarehouseTransportSparepartDetailID == dtoDetail.WarehouseTransportSparepartDetailID); } if (dbDetail != null) { AutoMapper.Mapper.Map <DTO.WarehouseTransportMng.WarehouseTransportSparepartDetail, WarehouseTransportSparepartDetail>(dtoDetail, dbDetail); } } } //Purchasing Invoice AutoMapper.Mapper.Map <DTO.WarehouseTransportMng.WarehouseTransport, WarehouseTransport>(dtoItem, dbItem); if (dtoItem.WarehouseTransportID > 0) { dbItem.UpdatedDate = DateTime.Now; dbItem.UpdatedBy = dtoItem.UpdatedBy; } else { dbItem.CreatedDate = DateTime.Now; dbItem.CreatedBy = dtoItem.UpdatedBy; } dbItem.TransportDate = dtoItem.TransportDate.ConvertStringToDateTime(); }