public SOWAssignUpdateHandler(GlobalSolusindoDb db, tblM_User user, SOWAssignValidator sowAssignValidator, SOWAssignFactory sowAssignFactory, SOWAssignQuery sowAssignQuery, AccessControl accessControl) : base(db, user) { this.sowAssignValidator = sowAssignValidator; this.sowAssignFactory = sowAssignFactory; this.sowAssignQuery = sowAssignQuery; this.sowAssignEntryDataProvider = new SOWAssignEntryDataProvider(db, user, accessControl, sowAssignQuery); }
public SOWDTO GetByPrimaryKey(int primaryKey) { SOWDTO record = GetQuery().FirstOrDefault(sow => sow.SOW_PK == primaryKey); if (record != null) { var sowAssigns = new SOWAssignQuery(this.Db).GetWithSP_BySOW_FK(record.SOW_PK); record.SOWAssigns = sowAssigns.OrderByDescending(sowAssign => sowAssign.SOWAssign_PK).ToList(); record.SOWTracks = new SOWTrackQuery(Db).GetBySOWFK(primaryKey); } return(record); }
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."); } } } }
public SearchResult <SOWTrackDTO> GetDataByFilter(SOWTrackSearchFilter filter) { if (string.IsNullOrEmpty(filter.SortName)) { filter.SortName = "SOWTrack_PK"; } SOWTrackQuery sowTrackQuery = new SOWTrackQuery(this.Db); var sowAssign = new SOWAssignQuery(Db).GetByPrimaryKey(filter.TaskId); int sowFk = 0; if (sowAssign == null) { throw new Kairos.KairosException($"Invalid task ID '{filter.TaskId}'."); } if (sowAssign != null) { sowFk = sowAssign.SOW_FK; } var filteredRecords = sowTrackQuery.GetQuery(); if (filter.TaskId > 0 && sowFk > 0) { filteredRecords = filteredRecords.Where(x => x.SOW_FK == sowFk); } if (!string.IsNullOrEmpty(filter.NetworkType)) { var technology = new TechnologyQuery(Db).GetByTitle(filter.NetworkType); if (technology != null) { filteredRecords.Where(x => x.TipePekerjaan_FK == technology.Technology_PK); } else { filteredRecords.Where(x => x.TipePekerjaan_FK == 0); } } var displayedRecords = filteredRecords. SortBy(filter.SortName, filter.SortDir) .Skip(filter.Skip) .Take(filter.PageSize) .ToList(); var routes = displayedRecords = displayedRecords.Select(sowTrack => new SOWTrackDTO { SOWTrack_PK = sowTrack.SOWTrack_PK, SOW_FK = sowTrack.SOW_FK, Route = sowTrack.Route, CreatedBy = sowTrack.CreatedBy, CreatedDate = sowTrack.CreatedDate, UpdatedBy = sowTrack.UpdatedBy, UpdatedDate = sowTrack.UpdatedDate, Status_FK = sowTrack.Status_FK }).ToList(); var searchResult = new SearchResult <SOWTrackDTO>(filter); searchResult.Filter = filter; searchResult.Count.TotalRecords = sowTrackQuery.GetTotalRecords(); searchResult.Count.TotalFiltered = filteredRecords.Count(); searchResult.Count.TotalDisplayed = displayedRecords.Count(); searchResult.Records = displayedRecords; return(searchResult); }
public SOWAssignEntryDataProvider(GlobalSolusindoDb db, tblM_User user, AccessControl accessControl, SOWAssignQuery sowAssignQuery) : base(db, user) { this.accessControl = accessControl; this.sowAssignQuery = sowAssignQuery; }
private SOWDTO CreateModel(int pk) { var jabatanQuery = new KategoriJabatanQuery(Db); var now = DateTime.Now; if (pk > 0) { SOWDTO sow = sowQuery.GetByPrimaryKey(pk); if (sow != null) { var unOrderedassigns = new SOWAssignQuery(Db).GetWithSP_BySOW_FK(pk); var orderedAssigns = new List <SOWAssignDTO>(); var teamLead = unOrderedassigns.FirstOrDefault(x => x.KategoriJabatan_FK == 1); var rno = unOrderedassigns.FirstOrDefault(x => x.KategoriJabatan_FK == 6); rno.KategoriJabatanTitle = "RNO"; var rf = unOrderedassigns.FirstOrDefault(x => x.KategoriJabatan_FK == 5); var dt = unOrderedassigns.FirstOrDefault(x => x.KategoriJabatan_FK == 2); var rigger = unOrderedassigns.FirstOrDefault(x => x.KategoriJabatan_FK == 3); orderedAssigns.Add(teamLead); orderedAssigns.Add(rno); orderedAssigns.Add(rf); orderedAssigns.Add(dt); orderedAssigns.Add(rigger); sow.SOWAssigns = orderedAssigns; } return(sow); } SOWDTO sowDTO = new SOWDTO() { TglMulai = now, //TglSelesai = now }; List <SOWAssignDTO> sowAssigns = new List <SOWAssignDTO>(); //Team leader sowAssigns.Add(new SOWAssignDTO() { SOWAssign_PK = 0, SOW_FK = sowDTO.SOW_PK, SOWName = sowDTO.SOWName, KategoriJabatanTitle = jabatanQuery.GetByPrimaryKey(1).Title, KategoriJabatan_FK = 1, User_FK = 0, UserName = "", TglMulai = now, }); //RNO sowAssigns.Add(new SOWAssignDTO() { SOWAssign_PK = 0, SOW_FK = sowDTO.SOW_PK, SOWName = sowDTO.SOWName, KategoriJabatanTitle = "RNO",//jabatanQuery.GetByPrimaryKey(6).Title, KategoriJabatan_FK = 6, User_FK = 0, UserName = "", TglMulai = now, }); //RF sowAssigns.Add(new SOWAssignDTO() { SOWAssign_PK = 0, SOW_FK = sowDTO.SOW_PK, SOWName = sowDTO.SOWName, KategoriJabatanTitle = jabatanQuery.GetByPrimaryKey(5).Title, KategoriJabatan_FK = 5, User_FK = 0, UserName = "", TglMulai = now, }); //DT sowAssigns.Add(new SOWAssignDTO() { SOWAssign_PK = 0, SOW_FK = sowDTO.SOW_PK, SOWName = sowDTO.SOWName, KategoriJabatanTitle = jabatanQuery.GetByPrimaryKey(2).Title, KategoriJabatan_FK = 2, User_FK = 0, UserName = "", TglMulai = now, }); //Rigger sowAssigns.Add(new SOWAssignDTO() { SOWAssign_PK = 0, SOW_FK = sowDTO.SOW_PK, SOWName = sowDTO.SOWName, KategoriJabatanTitle = jabatanQuery.GetByPrimaryKey(3).Title, KategoriJabatan_FK = 3, User_FK = 0, UserName = "", TglMulai = now, }); sowDTO.SOWAssigns = sowAssigns; return(sowDTO); }