private async Task <bool> AddEntity(TrainingPlanViewModel model,
                                            ICollection <TrainingPlanDistance> TrainingPlanDistances,
                                            IQueryable <Distance> regions)
        {
            bool isSaveSuccess = true;
            List <TrainingPlanDistance> TrainingPlanDistanceList = new List <TrainingPlanDistance>();

            foreach (var record in model.DistanceIds)
            {
                var currentRolePermission = regions.Any(a => a.Id == record);
                if (currentRolePermission)
                {
                    TrainingPlanDistance TrainingPlanDistance = new TrainingPlanDistance();
                    TrainingPlanDistanceList.Add(TrainingPlanDistance.ToEntity(record, model.Id, model.SessionUserId));
                }
            }

            if (TrainingPlanDistanceList.Count > 0)
            {
                await _context.TrainingPlanDistance.AddRangeAsync(TrainingPlanDistanceList);

                await _context.SaveChangesAsync();

                isSaveSuccess = true;
            }

            return(isSaveSuccess);
        }
        private async Task <bool> AddTrainingPlanDistanceWherePreviousExists(TrainingPlanViewModel model,
                                                                             ICollection <TrainingPlanDistance> TrainingPlanDistances,
                                                                             IQueryable <Distance> regions)
        {
            bool isSaveSuccess = true;
            List <TrainingPlanDistance> assignedTrainingPlanDistances = new List <TrainingPlanDistance>();

            foreach (var recordId in model.DistanceIds)
            {
                var currentRolePermission = regions.Where(a => a.Id == recordId).FirstOrDefault();
                if (currentRolePermission != null)
                {
                    if (!TrainingPlanDistances.Any(a => a.DistanceId == recordId))
                    {
                        // var currentUserRoleID = currentMenuRoles.First(a => a.Distance.RoleID == currentRolePermission.RoleID).RegionID;
                        var TrainingPlanDistanceRepo = new TrainingPlanDistance();
                        assignedTrainingPlanDistances.Add(TrainingPlanDistanceRepo.ToEntity(recordId, model.Id, model.SessionUserId));
                    }
                }
            }

            if (assignedTrainingPlanDistances.Count > 0)
            {
                await _context.TrainingPlanDistance.AddRangeAsync(assignedTrainingPlanDistances);

                await _context.SaveChangesAsync();

                isSaveSuccess = true;
            }

            return(isSaveSuccess);
        }
        private async Task <SaveResult> EditEntityAsync(TrainingPlanViewModel model, TrainingPlanDistance record)
        {
            var saveResult = new SaveResult();
            var editTrainingPlanDistance = await _context.TrainingPlanDistance.FindAsync(record.Id);

            editTrainingPlanDistance.ToEntity(record.DistanceId, model.Id, model.SessionUserId);

            _context.Update(editTrainingPlanDistance);
            await _context.SaveChangesAsync();

            saveResult.IsSuccess = true;
            return(saveResult);
        }
 public static TrainingPlanDistance ToEntity(this TrainingPlanDistance entity, int referralId, int containerId, string sessionUserID)
 {
     if (entity.Id > 0)
     {
         entity.UpdatedUserId    = sessionUserID;
         entity.UpdatedTimestamp = DateTime.Now;
     }
     else
     {
         entity.TrainingPlanId = containerId;
         entity.DistanceId     = referralId;
         entity.CreatedUserId  = sessionUserID;
     }
     return(entity);
 }