예제 #1
0
 public IActionResult UpdateComponentHistory(DispComponentDto Component)
 {
     try {
         var response = _dispatchService.UpdateComponentHistory(Component);
         return(Ok(response));
     } catch (ValueNotFoundException e) {
         Util.LogError(e);
         return(StatusCode(StatusCodes.Status422UnprocessableEntity, new ErrorClass()
         {
             code = StatusCodes.Status422UnprocessableEntity.ToString(), message = e.Message
         }));
     } catch (Exception e) {
         Util.LogError(e);
         return(StatusCode(StatusCodes.Status500InternalServerError, new ErrorClass()
         {
             code = StatusCodes.Status500InternalServerError.ToString(), message = "Something went wrong"
         }));
     }
 }
예제 #2
0
        public ResponseMessage UpdateComponentHistory(DispComponentDto Component)
        {
            using (var transaction = _context.Database.BeginTransaction())
            {
                try
                {
                    ResponseMessage responseMessage     = new ResponseMessage();
                    List <ComponentDetailsInput> result = new List <ComponentDetailsInput>();
                    int    id       = Component.DispStructureId;
                    string strQuery = string.Format("select dsc.id DispstructCompId, dsc.disp_structure_id DispStructureId,c.id DispCompId  from disp_structure_comp dsc inner join  component c  on  dsc.disp_comp_id  = c.id inner join disp_mod_stage_component dmsc on dmsc.dispstruct_comp_id =dsc.id inner join component_type ct on c.comp_type_id =ct.id where dsc.disp_structure_id ={0}", id);
                    result = _context.Query <ComponentDetailsInput>().FromSqlRaw(strQuery).ToList();

                    List <DispStructureComp> dispStructureComp = _context.DispStructureComp.Where(w => w.DispStructureId == Component.DispStructureId).ToList();


                    result.ForEach(item =>
                    {
                        Component compDetails =
                            _context.Component.Single(w => w.Id == item.DispCompId);
                        ComponentHistory AddItem = new ComponentHistory();
                        if (compDetails != null)
                        {
                            AddItem.Weight    = compDetails.Weight;
                            AddItem.Leng      = compDetails.Leng;
                            AddItem.Breath    = compDetails.Breath;
                            AddItem.Height    = compDetails.Height;
                            AddItem.Thickness = compDetails.Thickness;
                            //AddItem.MakeType=compDetails.MakeType;
                            AddItem.CreatedAt    = DateTime.Now;
                            AddItem.CreatedBy    = 1;   //To do
                            AddItem.ProjStructId = compDetails.ProjStructId;
                            AddItem.CompId       = compDetails.CompId;
                            AddItem.ProjStructId = compDetails.ProjStructId;
                            AddItem.CompTypeId   = compDetails.CompTypeId;
                        }
                        _context.ComponentHistory.Add(AddItem);
                        _context.SaveChanges();

                        DispModStageComponent compModStageDetails = _context.DispModStageComponent.OrderByDescending(o => o.CreatedAt).FirstOrDefault(x => x.DispstructCompId == item.DispstructCompId);

                        compDetails.Weight       = compModStageDetails.Weight;
                        compDetails.Leng         = compModStageDetails.Leng;
                        compDetails.Breath       = compModStageDetails.Breath;
                        compDetails.Height       = compModStageDetails.Height;
                        compDetails.Thickness    = compModStageDetails.Thickness;
                        compDetails.MakeType     = compModStageDetails.MakeType;
                        compDetails.ProjStructId = compDetails.ProjStructId;
                        _context.Component.Update(compDetails);
                        _context.SaveChanges();
                    });

                    DispReqStructure structid =
                        _context.DispReqStructure.FirstOrDefault(w => w.ProjStructId == Component.ProjectStructureId &&
                                                                 w.Id == Component.DispStructureId);

                    if (Component.IsVendor)
                    {
                        if (structid != null)
                        {
                            {
                                responseMessage = _dispatchReqSubConRepository.OSAssignVendor(Component.OSDispatchReqSubCont);
                            }
                            structid.DispStructStatus = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCMODIFYAPRD).ToString();
                            _context.DispReqStructure.Update(structid);

                            _context.SaveChanges();
                        }
                    }


                    if (Component.IsSite)
                    {
                        DispReqStructure dispstructid =
                            _context.DispReqStructure.SingleOrDefault(w => w.ProjStructId == Component.ProjectStructureId &&
                                                                      w.Id == Component.DispStructureId);

                        if (dispstructid != null)
                        {
                            dispstructid.DispStructStatus = Util.GetDescription(commonEnum.SiteDispatchSatus.READYTODELIVER).ToString();
                            _context.DispReqStructure.Update(dispstructid);

                            _context.SaveChanges();
                        }
                    }

                    DisreqStatusHistory disReqHis = new DisreqStatusHistory();
                    DispatchRequirement disreq    = _context.DispatchRequirement
                                                    .SingleOrDefault(w => w.Id == Component.DispatchRequirementId);
                    var totalCount = _context.DispReqStructure.Where(x => x.DispreqId == Component.DispatchRequirementId).Count();
                    var appCount   = _context.DispReqStructure.Where(x => x.DispreqId == Component.DispatchRequirementId && (x.DispStructStatus == Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCMODIFYAPRD).ToString() || x.DispStructStatus == Util.GetDescription(commonEnum.SiteDispatchSatus.READYTODELIVER).ToString())).Count();
                    // if(disreq!=null){
                    //      throw new ValueNotFoundException ("DispatchRequirementId Not Available");
                    // }
                    if (totalCount != appCount)
                    {
                        disreq.Status            = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCPARIALLYMODIFYAPRD).ToString();
                        disreq.StatusInternal    = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCPARIALLYMODIFYAPRD).ToString();
                        disreq.UpdatedBy         = 1; //To DO
                        disReqHis.Status         = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCPARIALLYMODIFYAPRD).ToString();
                        disReqHis.StatusInternal = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCPARIALLYMODIFYAPRD).ToString();
                        disreq.UpdatedAt         = DateTime.Now;
                        disReqHis.DispatchNo     = disreq.DispatchNo;
                        disReqHis.RoleId         = disreq.RoleId;
                        disReqHis.CreatedBy      = 1; //To DO
                        disReqHis.CreatedAt      = DateTime.Now;
                    }
                    else
                    {
                        disreq.Status            = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCMODIFYAPRD).ToString();
                        disreq.StatusInternal    = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCMODIFYAPRD).ToString();
                        disreq.UpdatedBy         = 1; //To DO
                        disreq.UpdatedAt         = DateTime.Now;
                        disReqHis.DispatchNo     = disreq.DispatchNo;
                        disReqHis.Status         = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCMODIFYAPRD).ToString();
                        disReqHis.StatusInternal = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCMODIFYAPRD).ToString();
                        disReqHis.RoleId         = disreq.RoleId;
                        disReqHis.CreatedBy      = 1; //To DO
                        disReqHis.CreatedAt      = DateTime.Now;
                    }

                    _context.DispatchRequirement.Update(disreq);
                    _context.DisreqStatusHistory.Add(disReqHis);
                    _context.SaveChanges();
                    responseMessage.Message = "Component updated";
                    transaction.Commit();
                    return(responseMessage);
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw ex;
                }
            }
        }