예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #5
0
        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);
        }
예제 #6
0
        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);
        }
예제 #7
0
        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);
        }