public IHttpActionResult Update(int id, DTO.ForwarderInvoiceMng.ForwarderInvoice dtoItem) { Library.DTO.Notification notification; // authentication Module.Framework.BLL fwBll = new Module.Framework.BLL(); if (id > 0 && !fwBll.CanPerformAction(ControllerContext.GetAuthUserId(), moduleCode, Library.DTO.ModuleAction.CanUpdate)) { // edit case return(InternalServerError(new Exception(Properties.Resources.NOT_AUTHORIZED))); } else if (id == 0 && !fwBll.CanPerformAction(ControllerContext.GetAuthUserId(), moduleCode, Library.DTO.ModuleAction.CanCreate)) { // create new case return(InternalServerError(new Exception(Properties.Resources.NOT_AUTHORIZED))); } // validation if (!Helper.CommonHelper.ValidateDTO <DTO.ForwarderInvoiceMng.ForwarderInvoice>(dtoItem, out notification)) { return(Ok(new Library.DTO.ReturnData <DTO.ForwarderInvoiceMng.ForwarderInvoice>() { Data = dtoItem, Message = notification })); } // continue processing BLL.ForwarderInvoiceMng bll = new BLL.ForwarderInvoiceMng(Helper.AuthHelper.GetCurrentUserFolder(ControllerContext)); bll.UpdateData(id, ref dtoItem, ControllerContext.GetAuthUserId(), out notification); return(Ok(new Library.DTO.ReturnData <DTO.ForwarderInvoiceMng.ForwarderInvoice>() { Data = dtoItem, Message = notification })); }
public void DTO2BD(DTO.ForwarderInvoiceMng.ForwarderInvoice dtoItem, ref ForwarderInvoice dbItem) { AutoMapper.Mapper.Map <DTO.ForwarderInvoiceMng.ForwarderInvoice, ForwarderInvoice>(dtoItem, dbItem); dbItem.UpdatedDate = DateTime.Now; if (!string.IsNullOrEmpty(dtoItem.InvoiceDate)) { try { dbItem.InvoiceDate = DateTime.ParseExact(dtoItem.InvoiceDate, "d", new System.Globalization.CultureInfo("vi-VN")); } catch { dbItem.InvoiceDate = null; } } if (!string.IsNullOrEmpty(dtoItem.DueDate)) { try { dbItem.DueDate = DateTime.ParseExact(dtoItem.DueDate, "d", new System.Globalization.CultureInfo("vi-VN")); } catch { dbItem.DueDate = null; } } //map pieces if (dtoItem.ForwarderInvoiceDetails != null) { // check for child rows deleted foreach (ForwarderInvoiceDetail dbDetail in dbItem.ForwarderInvoiceDetails.ToArray()) { if (!dtoItem.ForwarderInvoiceDetails.Select(o => o.ForwarderInvoiceDetailID).Contains(dbDetail.ForwarderInvoiceDetailID)) { dbItem.ForwarderInvoiceDetails.Remove(dbDetail); } } // map child rows foreach (DTO.ForwarderInvoiceMng.ForwarderInvoiceDetail dtoDetail in dtoItem.ForwarderInvoiceDetails) { ForwarderInvoiceDetail dbDetail; if (dtoDetail.ForwarderInvoiceDetailID <= 0) { dbDetail = new ForwarderInvoiceDetail(); dbItem.ForwarderInvoiceDetails.Add(dbDetail); } else { dbDetail = dbItem.ForwarderInvoiceDetails.FirstOrDefault(o => o.ForwarderInvoiceDetailID == dtoDetail.ForwarderInvoiceDetailID); } if (dbDetail != null) { AutoMapper.Mapper.Map <DTO.ForwarderInvoiceMng.ForwarderInvoiceDetail, ForwarderInvoiceDetail>(dtoDetail, dbDetail); } } } }