예제 #1
0
 public int EditDetail(int factoryGoodsProcedureID, object factoryGoodsProcedureDetail, out Library.DTO.Notification notification)
 {
     notification = new Library.DTO.Notification()
     {
         Type = Library.DTO.NotificationType.Success
     };
     DTO.FactoryGoodsProcedureDetailDTO dtoFactoryGoodsProcedureDetail = ((Newtonsoft.Json.Linq.JObject)factoryGoodsProcedureDetail).ToObject <DTO.FactoryGoodsProcedureDetailDTO>();
     try
     {
         if (!dtoFactoryGoodsProcedureDetail.FactoryStepID.HasValue)
         {
             throw new Exception("You have select step.");
         }
         using (FactoryGoodsProcedureEntities context = CreateContext())
         {
             FactoryGoodsProcedureDetail dbFactoryGoodsProcedureDetail;
             if (dtoFactoryGoodsProcedureDetail.FactoryGoodsProcedureDetailID > 0)
             {
                 dbFactoryGoodsProcedureDetail = context.FactoryGoodsProcedureDetail.Find(dtoFactoryGoodsProcedureDetail.FactoryGoodsProcedureDetailID);
             }
             else
             {
                 dbFactoryGoodsProcedureDetail = new FactoryGoodsProcedureDetail();
                 dbFactoryGoodsProcedureDetail.FactoryGoodsProcedureID = factoryGoodsProcedureID;
                 context.FactoryGoodsProcedureDetail.Add(dbFactoryGoodsProcedureDetail);
             }
             if (dbFactoryGoodsProcedureDetail != null)
             {
                 dbFactoryGoodsProcedureDetail.FactoryStepID = dtoFactoryGoodsProcedureDetail.FactoryStepID;
                 dbFactoryGoodsProcedureDetail.StepIndex     = dtoFactoryGoodsProcedureDetail.StepIndex;
             }
             else
             {
                 throw new Exception("Could not find data. You have to save data before update component detail.");
             }
             context.SaveChanges();
             return(dbFactoryGoodsProcedureDetail.FactoryGoodsProcedureDetailID);
         }
     }
     catch (Exception ex)
     {
         notification.Type    = Library.DTO.NotificationType.Error;
         notification.Message = ex.Message;
         notification.DetailMessage.Add(ex.Message);
         if (ex.GetBaseException() != null)
         {
             notification.DetailMessage.Add(ex.GetBaseException().Message);
         }
         return(-1);
     }
 }
예제 #2
0
        public void DTO2DB_FactoryGoodsProcedure(DTO.FactoryGoodsProcedureDTO dtoItem, ref FactoryGoodsProcedure dbItem)
        {
            if (dtoItem.FactoryGoodsProcedureDetailDTOs != null) // allow user delete item in case receipt is export
            {
                foreach (var item in dbItem.FactoryGoodsProcedureDetail.ToArray())
                {
                    if (!dtoItem.FactoryGoodsProcedureDetailDTOs.Select(s => s.FactoryGoodsProcedureDetailID).Contains(item.FactoryGoodsProcedureDetailID))
                    {
                        dbItem.FactoryGoodsProcedureDetail.Remove(item);
                    }
                }

                foreach (var item in dtoItem.FactoryGoodsProcedureDetailDTOs)
                {
                    if (item.FactoryStepID == null)
                    {
                        continue;
                    }

                    FactoryGoodsProcedureDetail dbDetail;

                    if (item.FactoryGoodsProcedureDetailID < 0)
                    {
                        dbDetail = new FactoryGoodsProcedureDetail();
                        dbItem.FactoryGoodsProcedureDetail.Add(dbDetail);
                    }
                    else
                    {
                        dbDetail = dbItem.FactoryGoodsProcedureDetail.Where(o => o.FactoryGoodsProcedureDetailID == item.FactoryGoodsProcedureDetailID).FirstOrDefault();
                    }

                    if (dbDetail != null)
                    {
                        AutoMapper.Mapper.Map <DTO.FactoryGoodsProcedureDetailDTO, FactoryGoodsProcedureDetail>(item, dbDetail);
                    }
                }
            }

            AutoMapper.Mapper.Map <DTO.FactoryGoodsProcedureDTO, FactoryGoodsProcedure>(dtoItem, dbItem);
        }