private void UpdateFinishingProcess(List <vmFinishProcess> _finishing, CmnItemMaster _itemMaster)
 {
     if (_finishing.Count > 0)
     {
         Int64 FInishTypeID;
         GenericFactory_EF_FinishingType = new PrdFinishingType_EF();
         List <PrdFinishingType> matchFinishingTypes = null;
         try
         {
             foreach (vmFinishProcess aitem in _finishing)
             {
                 PrdFinishingType _finishingType = GenericFactory_EF_FinishingType.FindBy(x => x.IsDeleted == false && x.ItemID == _itemMaster.ItemID && x.FinishingProcessID == aitem.id).FirstOrDefault();
                 if (_finishingType != null)
                 {
                     matchFinishingTypes.Add(_finishingType);
                 }
                 else
                 {
                     SaveFinishingProcess(_finishing, _itemMaster);
                 }
             }
             List <vmFinishProcess> _unMatchFinshingTypes = GetUnMatchFinishingType(matchFinishingTypes, _itemMaster);
             int result = DeleteFinishingType(_unMatchFinshingTypes, _itemMaster);
         }
         catch
         {
         }
     }
 }
        private int DeleteFinishingType(List <vmFinishProcess> _unMatchFinshingTypes, CmnItemMaster _itemMaster)
        {
            int result = 0;

            GenericFactory_EF_FinishingType = new PrdFinishingType_EF();
            try
            {
                foreach (vmFinishProcess aitem in _unMatchFinshingTypes)
                {
                    PrdFinishingType _finishingType = _ctxCmn.PrdFinishingTypes.Where(x => x.ItemID == _itemMaster.ItemID && x.FinishingProcessID == aitem.id).FirstOrDefault();
                    _finishingType.DeleteBy = _itemMaster.CreateBy;
                    _finishingType.DeleteOn = DateTime.Now;
                    _finishingType.UpdatePc = HostService.GetIP();
                    GenericFactory_EF_FinishingType.Update(_finishingType);
                    GenericFactory_EF_FinishingType.Save();
                }

                result = 1;
            }
            catch
            {
                result = 0;
            }
            return(result);
        }
        private void SaveFinishingProcess(List <vmFinishProcess> _finishing, CmnItemMaster _itemMaster)
        {
            Int64 FInishTypeID;

            GenericFactory_EF_FinishingType = new PrdFinishingType_EF();
            try
            {
                FInishTypeID = Convert.ToInt64(GenericFactory_EF_FinishingType.getMaxID("PrdFinishingType"));
                foreach (vmFinishProcess aitem in _finishing)
                {
                    PrdFinishingType _prdFinishingType = new PrdFinishingType();
                    _prdFinishingType.FInishTypeID       = FInishTypeID;
                    _prdFinishingType.ItemID             = _itemMaster.ItemID;
                    _prdFinishingType.FinishingProcessID = aitem.id;
                    _prdFinishingType.IsActive           = false;
                    _prdFinishingType.CompanyID          = _itemMaster.CompanyID;
                    _prdFinishingType.IsDeleted          = false;
                    _prdFinishingType.CreateBy           = Convert.ToInt16(_itemMaster.CreateBy);
                    _prdFinishingType.CreateOn           = DateTime.Today;
                    _prdFinishingType.CreatePc           = HostService.GetIP();
                    GenericFactory_EF_FinishingType.Insert(_prdFinishingType);
                    GenericFactory_EF_FinishingType.Save();
                    FInishTypeID++;
                }
                GenericFactory_EF_FinishingType.updateMaxID("PrdFinishingType", FInishTypeID);
            }
            catch (Exception ex)
            {
                var message = ex.Message.ToString();
            }
        }
        private List <vmFinishProcess> GetUnMatchFinishingType(List <PrdFinishingType> matchFinishingTypes, CmnItemMaster _itemMaster)
        {
            List <vmFinishProcess>  _unMatchFinshingTypes = null;
            List <PrdFinishingType> finishingTypes        = _ctxCmn.PrdFinishingTypes.Where(x => x.ItemID == _itemMaster.ItemID).ToList();

            try
            {
                foreach (PrdFinishingType aitem in finishingTypes)
                {
                    PrdFinishingType _prdFinishingType = matchFinishingTypes.Where(x => x.FinishingProcessID == aitem.FinishingProcessID).FirstOrDefault();
                    if (_prdFinishingType == null)
                    {
                        vmFinishProcess _finishProcess = new vmFinishProcess();
                        _finishProcess.id = aitem.FinishingProcessID ?? 0;
                        _unMatchFinshingTypes.Add(_finishProcess);
                    }
                }
            }
            catch
            {
            }
            return(_unMatchFinshingTypes);
        }