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); } } } }
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)); }
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); } }