private void SoftDelete(tblT_SOWAssign sowAssign)
 {
     if (sowAssign != null)
     {
         sowAssign.Status_FK = (int)RecordStatus.Deleted;
     }
 }
 private void HardDelete(tblT_SOWAssign sowAssign)
 {
     if (sowAssign != null)
     {
         Db.tblT_SOWAssign.Remove(sowAssign);
     }
 }
 public void Update(SOWAssignDTO sowAssignDTO, DateTime dateStamp)
 {
     if (sowAssignDTO == null)
     {
         throw new ArgumentNullException("SOWAssign model is null.");
     }
     tblT_SOWAssign sowAssign = sowAssignFactory.CreateFromDbAndUpdateFromDTO(sowAssignDTO, dateStamp);
 }
예제 #4
0
        private void UpdateSowAssign(SOWDTO sowDTO, DateTime dateStamp)
        {
            if (sowDTO == null)
            {
                throw new ArgumentNullException("SOW model is null.");
            }

            foreach (var sowAssignDTO in sowDTO.SOWAssigns)
            {
                sowAssignDTO.SOW_FK = sowDTO.SOW_PK;
                tblT_SOWAssign existingSowAssign = null;
                if (sowAssignDTO.SOWAssign_PK != 0)
                {
                    existingSowAssign = this.Db.tblT_SOWAssign.Find(sowAssignDTO.SOWAssign_PK);
                }

                bool isAssigned = false;

                if (existingSowAssign != null)
                {
                    isAssigned = existingSowAssign.User_FK != 0;
                }

                int assignedUserFk = 0;
                if (existingSowAssign != null && existingSowAssign.User_FK != null)
                {
                    assignedUserFk = existingSowAssign.User_FK.Value;
                }

                bool assignedUserIsChanged = assignedUserFk != sowAssignDTO.User_FK;
                if (isAssigned && assignedUserIsChanged)
                {
                    //create new row (history) based on changed user assign, and set its finish date
                    tblT_SOWAssign sowAssign = sowAssignFactory.CreateFromDTO(sowAssignDTO, dateStamp);
                    sowAssign.User_FK    = assignedUserFk;
                    sowAssign.TglSelesai = dateStamp;
                    Db.tblT_SOWAssign.Add(sowAssign);
                }
                //note that, CreateFromDbAndUpdateFromDTO method is also create a Modified state in db context object
                //so any update process is in the factory class
                if (sowAssignDTO.SOWAssign_PK != 0)
                {
                    tblT_SOWAssign sowAssignToUpdate = sowAssignFactory.CreateFromDbAndUpdateFromDTO(sowAssignDTO, dateStamp);
                }
                else
                {
                    if (assignedUserIsChanged)
                    {
                        sowAssignDTO.SOW_FK   = sowDTO.SOW_PK;
                        sowAssignDTO.TglMulai = dateStamp;
                        tblT_SOWAssign sowAssignToBeAdded = sowAssignFactory.CreateFromDTO(sowAssignDTO, dateStamp);
                        Db.tblT_SOWAssign.Add(sowAssignToBeAdded);
                    }
                }
            }
        }
예제 #5
0
        public tblT_SOWAssign Insert(SOWAssignDTO sowAssignDTO, DateTime dateStamp)
        {
            if (sowAssignDTO == null)
            {
                throw new ArgumentNullException("SOWAssign model is null.");
            }
            tblT_SOWAssign sowAssign = sowAssignFactory.CreateFromDTO(sowAssignDTO, dateStamp);

            return(Db.tblT_SOWAssign.Add(sowAssign));
        }
예제 #6
0
        private void AddSowAssign(SOWDTO sowDTO, DateTime dateStamp)
        {
            if (sowDTO == null)
            {
                throw new ArgumentNullException("SOW model is null.");
            }

            foreach (var sowAssignDTO in sowDTO.SOWAssigns)
            {
                sowAssignDTO.SOW_FK = sowDTO.SOW_PK;
                tblT_SOWAssign sowAssign = sowAssignFactory.CreateFromDTO(sowAssignDTO, dateStamp);
                Db.tblT_SOWAssign.Add(sowAssign);
            }
        }
예제 #7
0
        public tblT_SOWAssign CreateFromDTO(SOWAssignDTO sowAssignDTO, DateTime dateStamp)
        {
            if (sowAssignDTO == null)
            {
                throw new ArgumentNullException("SOWAssign model is null.");
            }
            sowAssignDTO.Status_FK   = (int)RecordStatus.Active;
            sowAssignDTO.CreatedBy   = User.Username;
            sowAssignDTO.CreatedDate = dateStamp;
            sowAssignDTO.UpdatedBy   = User.Username;
            sowAssignDTO.UpdatedDate = dateStamp;
            tblT_SOWAssign sowAssign = sowAssignDTO.ToObject <tblT_SOWAssign>();

            return(sowAssign);
        }
예제 #8
0
        public SaveResult <SOWAssignEntryModel> Save(SOWAssignDTO sowAssignDTO, DateTime dateStamp)
        {
            ModelValidationResult validationResult = sowAssignValidator.Validate(sowAssignDTO);
            bool success = false;
            SOWAssignEntryModel model = null;

            if (validationResult.IsValid)
            {
                tblT_SOWAssign sowAssign = Insert(sowAssignDTO, dateStamp);
                Db.SaveChanges();

                success = true;
                model   = sowAssignEntryDataProvider.Get(sowAssign.SOWAssign_PK);
            }

            return(new SaveResult <SOWAssignEntryModel>
            {
                Success = success,
                Message = validationResult.IsValid ? "Data successfully created." : "Validation error occured.",
                Model = model,
                ValidationResult = validationResult
            });
        }
        public DeleteResult <tblT_SOWAssign> Execute(int sowAssignPK, DeleteMethod deleteMethod)
        {
            tblT_SOWAssign sowAssign = Db.tblT_SOWAssign.Find(sowAssignPK);

            if (sowAssign == null)
            {
                return(new DeleteResult <tblT_SOWAssign>()
                {
                    Success = false,
                    Message = $"Id '{sowAssignPK}' is not found.",
                    Record = null
                });
            }

            switch (deleteMethod)
            {
            case DeleteMethod.Soft:
                SoftDelete(sowAssign);
                break;

            case DeleteMethod.Hard:
                HardDelete(sowAssign);
                break;

            default:
                break;
            }

            Db.SaveChanges();

            return(new DeleteResult <tblT_SOWAssign>()
            {
                Success = true,
                Message = $"SOWAssign with Id '{sowAssignPK}' successfully deleted.",
                Record = sowAssign
            });
        }