private async Task <SaveResult> ManageExistingTimeTrialDistance(TimeTrialViewModel model, ICollection <TimeTrialDistance> currentEntityList, IQueryable <Distance> distance) { SaveResult saveResult = new SaveResult { IsSuccess = true }; List <TimeTrialDistance> assignedTimeTrialDistances = new List <TimeTrialDistance>(); foreach (var record in currentEntityList) { if (saveResult.IsSuccess) { if (!model.DistanceIds.Any(a => a == record.DistanceId)) { var deleteTimeTrialDistance = await _context.TimeTrialDistance.FindAsync(record.Id); if (saveResult.IsSuccess) { _context.Remove(deleteTimeTrialDistance); await _context.SaveChangesAsync(); saveResult.IsSuccess = true; } } else { saveResult = await EditEntityAsync(model, record); } } } return(saveResult); }
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); }
/// <summary> /// Convert Race Entity into Race Object /// </summary> ///<param name="model">TimeTrialViewModel</param> ///<param name="RaceEntity">TimeTrial</param> ///<returns>TimeTrialViewModel</returns> public static TimeTrialViewModel ToViewModel( this TimeTrial entity, TimeTrialViewModel model) { model.Id = entity.Id; model.CalendarId = entity.CalendarId; model.RaceTypeId = entity.RaceTypeId; model.FinYear = entity.Calendar.FinYear.Name; model.Calendar = entity.Calendar.ToViewModel(new CalendarViewModel()); model.DistanceIds = entity.TimeTrialDistances.Select(a => a.DistanceId); return(model); }
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 async Task <SaveResult> SaveEntityList(TimeTrialViewModel model, TimeTrial parentEntity) { SaveResult saveResult = new SaveResult(); var currentEntities = parentEntity.TimeTrialDistances; if (model.DistanceIds == null) { if (currentEntities.Any()) { var TimeTrialDistanceIds = currentEntities.ToList().ToList().Select(b => b.Id); var toDeleteList = _context.TimeTrialDistance.Where(a => TimeTrialDistanceIds.Contains(a.Id)); _context.TimeTrialDistance.RemoveRange(toDeleteList); await _context.SaveChangesAsync(); saveResult.IsSuccess = true; } else { saveResult.IsSuccess = true; } } else { var regions = _context.Distance.Where(a => model.DistanceIds.Contains(a.Id)); if (currentEntities.Any()) { saveResult.IsSuccess = await AddTimeTrialDistanceWherePreviousExists(model, currentEntities, regions); if (saveResult.IsSuccess) { saveResult = await ManageExistingTimeTrialDistance(model, currentEntities, regions); } } else { saveResult.IsSuccess = await AddEntity(model, currentEntities, regions); } } return(saveResult); }
/// <summary> /// Convert Race Object into Race Entity /// </summary> ///<param name="model">Race</param> ///<param name="RaceEntity">TimeTrial</param> ///<returns>TimeTrial</returns> public static TimeTrial ToEntity(this TimeTrialViewModel model, TimeTrial entity) { if (entity.Id == 0) { entity.CreatedUserId = model.SessionUserId; entity.IsActive = model.IsActive; entity.CalendarId = model.CalendarId; entity.RaceTypeId = model.RaceTypeId; } else { entity.UpdatedUserId = model.SessionUserId; entity.UpdatedTimestamp = DateTime.Now; } return(entity); }