private void SoftDelete(tblT_SOWTrackResult sowTrackResult)
 {
     if (sowTrackResult != null)
     {
         sowTrackResult.Status_FK = (int)RecordStatus.Deleted;
     }
 }
 private void HardDelete(tblT_SOWTrackResult sowTrackResult)
 {
     if (sowTrackResult != null)
     {
         Db.tblT_SOWTrackResult.Remove(sowTrackResult);
     }
 }
 public void Update(SOWTrackResultDTO sowTrackResultDTO, DateTime dateStamp)
 {
     if (sowTrackResultDTO == null)
     {
         throw new ArgumentNullException("SOWTrackResult model is null.");
     }
     tblT_SOWTrackResult sowTrackResult = sowTrackResultFactory.CreateFromDbAndUpdateFromDTO(sowTrackResultDTO, dateStamp);
 }
        public tblT_SOWTrackResult AddSOWTrackResult(SOWTrackResultDTO sowTrackResultDTO, DateTime dateStamp)
        {
            if (sowTrackResultDTO == null)
            {
                throw new ArgumentNullException("SOWTrackResult model is null.");
            }
            tblT_SOWTrackResult sowTrackResult = sowTrackResultFactory.CreateFromDTO(sowTrackResultDTO, dateStamp);

            return(Db.tblT_SOWTrackResult.Add(sowTrackResult));
        }
        public tblT_SOWTrackResult CreateFromDTO(SOWTrackResultDTO sowTrackResultDTO, DateTime dateStamp)
        {
            if (sowTrackResultDTO == null)
            {
                throw new ArgumentNullException("SOWTrackResult model is null.");
            }
            sowTrackResultDTO.Status_FK   = (int)RecordStatus.Active;
            sowTrackResultDTO.CreatedBy   = User.Username;
            sowTrackResultDTO.CreatedDate = dateStamp;
            sowTrackResultDTO.UpdatedBy   = User.Username;
            sowTrackResultDTO.UpdatedDate = dateStamp;
            tblT_SOWTrackResult sowTrackResult = sowTrackResultDTO.ToObject <tblT_SOWTrackResult>();

            sowTrackResult.CheckIn_FK = sowTrackResultDTO.CheckIn_FK;
            return(sowTrackResult);
        }
        public SaveResult <SOWTrackResultEntryModel> Save(SOWTrackResultDTO sowTrackResultDTO, DateTime dateStamp)
        {
            ModelValidationResult validationResult = sowTrackResultValidator.Validate(sowTrackResultDTO);
            bool success = false;
            SOWTrackResultEntryModel model = null;

            if (validationResult.IsValid)
            {
                tblT_SOWTrackResult sowTrackResult = AddSOWTrackResult(sowTrackResultDTO, dateStamp);
                Db.SaveChanges();

                success = true;
                model   = sowTrackResultEntryDataProvider.Get(sowTrackResult.SOWTrackResult_PK);
            }

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

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

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

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

            default:
                break;
            }

            Db.SaveChanges();

            return(new DeleteResult <tblT_SOWTrackResult>()
            {
                Success = true,
                Message = $"SOWTrackResult with Id '{sowTrackResultPK}' successfully deleted.",
                Record = sowTrackResult
            });
        }
예제 #8
0
        private void AddSOWTrackResultIfUserRoleIsDriver(MobileCheckInDTO checkInDTO, DateTime dateStamp)
        {
            var possibleDriverRoleNames = new List <string>()
            {
                "Driver",
                "DT",
                "Drive Tester (DT)"
            };

            var jabatans = Db.tblM_KategoriJabatan.Where(x => x.Title.Contains("DT") || x.Title.Contains("Drive") || x.KategoriJabatan_PK == 2);

            var sowAssign = new SOWAssignQuery(Db).GetByPrimaryKey(checkInDTO.SOWAssign_FK);

            if (sowAssign == null)
            {
                throw new NullReferenceException($"Failed to create sow track result while checkin, taskid or assignId '{checkInDTO.SOWAssign_FK}' doesn't exist.");
            }

            var user = Db.tblM_User.Find(sowAssign.User_FK);

            if (user == null)
            {
                throw new NullReferenceException($"Failed to create sow track result while checkin, user id '{sowAssign.User_FK}' doesn't exist.");
            }

            var roleGroups = new RoleGroupQuery(Db).GetByUserFk(sowAssign.User_FK);

            var userIsDriver =
                roleGroups.Where(x => possibleDriverRoleNames.Contains(x.Title)).Count() > 0 ||
                jabatans.Where(x => x.KategoriJabatan_PK == user.KategoriJabatan_FK).Count() > 0;

            if (userIsDriver)
            {
                if (string.IsNullOrEmpty(checkInDTO.TaskNetwork))
                {
                    throw new Kairos.KairosException($"Task network is required for driver checkin.");
                }

                if (sowAssign != null)
                {
                    var sowTrack = new SOWTrackQuery(Db).GetBySOWFKAndTechnologyTitle(sowAssign.SOW_FK, checkInDTO.TaskNetwork);

                    if (sowTrack != null)
                    {
                        SOWTrackResultDTO sowTrackResultDTO = new SOWTrackResultDTO()
                        {
                            CheckIn_FK  = checkInDTO.CheckIn_PK,
                            SOWTrack_FK = sowTrack.SOWTrack_PK,
                            Status_FK   = 1,
                        };

                        SOWTrackResultFactory sowTrackResultFactory = new SOWTrackResultFactory(Db, User);
                        tblT_SOWTrackResult   sowTrackResult        = sowTrackResultFactory.CreateFromDTO(sowTrackResultDTO, dateStamp);
                        Db.tblT_SOWTrackResult.Add(sowTrackResult);
                    }
                    else
                    {
                        throw new Kairos.KairosException($"Invalid task network '{checkInDTO.TaskNetwork}', it's not registered in sow register.");
                    }
                }
            }
        }