private async Task <bool> AddEntity(TimeTrialViewModel model, ICollection <TimeTrialDistance> TimeTrialDistances, IQueryable <Distance> distances) { bool isSaveSuccess = true; List <TimeTrialDistance> TimeTrialDistanceList = new List <TimeTrialDistance>(); foreach (var record in model.DistanceIds) { var currentDistance = distances.Any(a => a.Id == record); if (currentDistance) { TimeTrialDistance TimeTrialDistance = new TimeTrialDistance(); TimeTrialDistanceList.Add(TimeTrialDistance.ToEntity(record, model.Id, model.SessionUserId)); } } if (TimeTrialDistanceList.Count > 0) { await _context.TimeTrialDistance.AddRangeAsync(TimeTrialDistanceList); await _context.SaveChangesAsync(); isSaveSuccess = true; } return(isSaveSuccess); }
private async Task <bool> AddTimeTrialDistanceWherePreviousExists(TimeTrialViewModel model, ICollection <TimeTrialDistance> TimeTrialDistances, IQueryable <Distance> distances) { bool isSaveSuccess = true; List <TimeTrialDistance> assignedTimeTrialDistances = new List <TimeTrialDistance>(); foreach (var recordId in model.DistanceIds) { var currentReferralEntity = distances.Where(a => a.Id == recordId).FirstOrDefault(); if (currentReferralEntity != null) { if (!TimeTrialDistances.Any(a => a.DistanceId == recordId)) { // var currentUserRoleID = currentMenuRoles.First(a => a.Distance.RoleID == currentRolePermission.RoleID).RegionID; var newEntity = new TimeTrialDistance(); assignedTimeTrialDistances.Add(newEntity.ToEntity(recordId, model.Id, model.SessionUserId)); } } } if (assignedTimeTrialDistances.Count > 0) { await _context.TimeTrialDistance.AddRangeAsync(assignedTimeTrialDistances); await _context.SaveChangesAsync(); isSaveSuccess = true; } return(isSaveSuccess); }
private async Task <SaveResult> EditEntityAsync(TimeTrialViewModel model, TimeTrialDistance record) { var saveResult = new SaveResult(); var editTimeTrialDistance = await _context.TimeTrialDistance.FindAsync(record.Id); editTimeTrialDistance.ToEntity(record.DistanceId, model.Id, model.SessionUserId); _context.Update(editTimeTrialDistance); await _context.SaveChangesAsync(); saveResult.IsSuccess = true; return(saveResult); }
public static TimeTrialDistance ToEntity(this TimeTrialDistance entity, int referralId, int containerId, string sessionUserId) { if (entity.Id > 0) { entity.UpdatedUserId = sessionUserId; entity.UpdatedTimestamp = DateTime.Now; } else { entity.TimeTrialId = containerId; entity.DistanceId = referralId; entity.CreatedUserId = sessionUserId; } return(entity); }
private async Task <int> CalculateAge(Member memberEntity, int TimeTrialDistanceId) { TimeTrialDistance TimeTrialDistanceEntity = await _context.TimeTrialDistance.FindAsync(TimeTrialDistanceId); if (TimeTrialDistanceEntity == null) { throw new ArgumentNullException("Race Distance not found"); } int age = memberEntity.Person.AgeGroup.Id; AgeGroup ageGroupEntity = await _context.AgeGroup.FirstOrDefaultAsync(a => a.MinValue < age && age <= a.MaxValue); if (ageGroupEntity == null) { throw new ArgumentNullException("Agre Group not found"); } return(ageGroupEntity.Id); }
public async Task <SaveResult> SaveEntity(TimeTrialResultViewModel viewModel) { SaveResult saveResult = new SaveResult(); Dictionary <bool, string> dictionary = new Dictionary <bool, string>(); try { TimeTrialDistance parentEntity = await _context.TimeTrialDistance.IgnoreQueryFilters().FirstOrDefaultAsync(a => a.Id == viewModel.TimeTrialDistanceId); saveResult = await _timeTrialResultMappingBL.SaveEntityList(viewModel, parentEntity); } catch (DbUpdateException upDateEx) { var results = upDateEx.GetSqlerrorNo(); string msg = results == (int)SqlErrNo.FK ? ConstEntity.MissingValueMsg : ConstEntity.UniqueKeyMsg; saveResult = dictionary.GetValidateEntityResults(msg).ToSaveResult(); } catch (Exception ex) { saveResult.Message = CrudError.SaveErrorMsg; } return(saveResult); }
public async Task <SaveResult> SaveEntityList(TimeTrialResultViewModel model, TimeTrialDistance parentEntity) { SaveResult saveResult = new SaveResult(); var currentEntities = parentEntity.TimeTrialResults; if (model.MemberIds == null) { if (currentEntities.Any()) { var TimeTrialResultIds = currentEntities.ToList().ToList().Select(b => b.Id); var toDeleteList = _context.TimeTrialResult.Where(a => TimeTrialResultIds.Contains(a.Id)); _context.TimeTrialResult.RemoveRange(toDeleteList); await _context.SaveChangesAsync(); saveResult.IsSuccess = true; } else { saveResult.IsSuccess = true; } } else { var memberList = _context.Member.Include(a => a.Person.AgeGroup) .Where(a => model.MemberIds.Contains(a.Id)); if (currentEntities.Any()) { saveResult.IsSuccess = await AddTimeTrialResultWherePreviousExists(model, currentEntities, memberList); if (saveResult.IsSuccess) { saveResult = await ManageExistingTimeTrialResult(model, currentEntities, memberList); } } else { saveResult.IsSuccess = await AddEntity(model, currentEntities, memberList); } } return(saveResult); }