Beispiel #1
0
        private TEntity CreateEntity(IEntityParams entityParams)
        {
            var entity = _mapper.Map <TEntity>(entityParams);

            if (entity is IDateOperationFields)
            {
                var operatorFields = entity as IDateOperationFields;

                operatorFields.AssignOperatorFields(OperationType.Create);
            }

            OnSaveChanges(entityParams, entity);

            if (entity is IHasStatus && entityParams is IHasStatus)
            {
                var statusEntity = entity as IHasStatus;
                statusEntity.Status = Status.Active;
            }

            _applicationDbContext.Add(entity);
            _applicationDbContext.SaveChanges();

            entityParams.SetPropertyValue("Id", entity.Id);

            OnSaveChangedAsync(entityParams, entity);

            return(entity);
        }
Beispiel #2
0
        protected override void OnSaveChanges(IEntityParams entityParams, ChallengeRequest entity)
        {
            base.OnSaveChanges(entityParams, entity);

            var challengeRequestParams = entityParams as ChallengeRequestParams;

            // If the Challenger tries to accept a game which its user is already in another game
            if (challengeRequestParams.Id == 0 &&
                challengeRequestParams.ChallengeRequestStatus == Enums.ChallengeRequestStatus.Accepted &&
                IsUserInTheGame(challengeRequestParams.ChallengerId))
            {
                throw new UserNotAvailableException();
            }
        }
Beispiel #3
0
        private TEntity Create(IEntityParams entityParams)
        {
            var entity             = Mapper.Map <IEntityParams, TEntity>(entityParams);
            var tracingFieldsModel = entity as TracingDateModel;

            tracingFieldsModel?.FillTracingFields(ActionTypes.Create);
            OnSaveChanging(entity, entityParams);

            _repository.Create(entity);
            _repository.SaveChanges();

            entityParams.Id = entity.Id;

            OnSaveChanged(entity, entityParams);
            return(entity);
        }
Beispiel #4
0
        private TEntity Update(IEntityParams entityParams)
        {
            var entity             = _repository.Get(entityParams.Id);
            var tracingFieldsModel = entity as TracingDateModel;

            tracingFieldsModel?.FillTracingFields(ActionTypes.Update);

            Mapper.Map(entityParams, entity, entityParams.GetType(), typeof(TEntity));

            OnSaveChanging(entity, entityParams);

            _repository.Update(entity);
            _repository.SaveChanges();

            OnSaveChanged(entity, entityParams);

            return(entity);
        }
Beispiel #5
0
        protected override async void OnSaveChanges(IEntityParams entityParams, ChatRoom entity)
        {
            var chatRoomParams = entityParams as ChatRoomParams;
            var userId         = await _identityService.GetUserId(chatRoomParams.AccessToken);

            var chatRoomExists = Entities
                                 .Any(x =>
                                      ((x.UserId == entity.UserId && x.ChatUserId == userId) ||
                                       (x.UserId == userId && x.ChatUserId == entity.UserId)) &&
                                      x.Status == Status.Active);

            if (chatRoomExists)
            {
                return;
            }

            chatRoomParams.UserId = userId;
            entity.UserId         = userId;

            base.OnSaveChanges(chatRoomParams, entity);
        }
Beispiel #6
0
        protected override async void OnSaveChangedAsync(IEntityParams entityParams, ChallengeRequest entity)
        {
            base.OnSaveChangedAsync(entityParams, entity);
            var challengeRequestParams = entityParams as ChallengeRequestParams;

            entity.Challenger = Entities
                                .Include(x => x.Challenger)
                                .Where(x => x.ChallengerId == entity.ChallengerId)
                                .Select(x => x.Challenger).FirstOrDefault();

            entity.Challenge = _challengeService.Get(entity.ChallengeId);

            challengeRequestParams = _mapper.Map <ChallengeRequest, ChallengeRequestParams>(entity);
            var rnd = new Random();

            if (challengeRequestParams.ChallengeRequestStatus == Enums.ChallengeRequestStatus.Accepted)
            {
                var userIds = SetChallengeRequestsToMissed(challengeRequestParams.ChallengeId, challengeRequestParams.Id);

                await _hubContext.Clients.Users(userIds)
                .SendAsync("ChallengeRequestMissed", challengeRequestParams.Id);

                await _hubContext.Clients.User(challengeRequestParams.ChallengeOwnerId)
                .SendAsync("ChallengeRequestAccepted", JsonConvert.SerializeObject(new ChallengeRequestModel()
                {
                    ChallengeRequestId = challengeRequestParams.Id,
                    Point         = entity.Challenge.RewardPoint,
                    Range         = rnd.Next(1, 150).ToString() + " Meter",
                    FirstName     = entity.Challenger.Nickname,
                    UserImagePath = entity.Challenger.PictureUrl
                }));
            }

            if (entity.ChallengeRequestStatus == Enums.ChallengeRequestStatus.Rejected)
            {
                var challengeRequestModel = GetChallengeRequest(challengeRequestParams.Id);
            }
        }
Beispiel #7
0
        private TEntity UpdateEntity(IEntityParams entityParams)
        {
            var entity = Get(((IEntity)entityParams).Id);

            OnSaveChanges(entityParams, entity);

            if (entity is IDateOperationFields)
            {
                var operatorFields = entity as IDateOperationFields;

                operatorFields.AssignOperatorFields(OperationType.Update);
            }

            _mapper.Map(entityParams, entity,
                        entityParams.GetType(), typeof(TEntity));

            _applicationDbContext.Update(entity);
            _applicationDbContext.SaveChanges();

            OnSaveChangedAsync(entityParams, entity);

            return(entity);
        }
Beispiel #8
0
 protected virtual void OnCulturedEntitySaveChanges(IEntityParams entityParams
                                                    , TEntity entity, TCulturedEntity culturedEntity)
 {
 }
Beispiel #9
0
        protected override void OnSaveChangedAsync(IEntityParams entityParams, TEntity entity)
        {
            var baseEntityId = entity.Id;

            if (!(entityParams is IHasCulture))
            {
                throw new InvalidOperationException();
            }

            var culturedEntity = CulturedEntities.FirstOrDefault(x =>
                                                                 x.CulturedEntityStatus != Status.Removed && x.BaseEntityId == baseEntityId &&
                                                                 x.Culture == ((IHasCulture)entityParams).Culture);

            if (culturedEntity == null && entityParams.GetPropertyValue("ContentId") != null)
            {
                var contentId = (int)entityParams.GetPropertyValue("ContentId");
                culturedEntity = CulturedEntities.FirstOrDefault(x =>
                                                                 x.Id == contentId);
            }

            OnCulturedEntitySaveChanges(entityParams, entity, culturedEntity);


            if (culturedEntity == null)
            {
                var map = _mapper.Map <TCulturedEntity>(entityParams);
                map.BaseEntityId = baseEntityId;

                if (map is DateOperationFields)
                {
                    var operatorFields = map as DateOperationFields;

                    operatorFields.AssignOperatorFields(OperationType.Create);
                }
                map.CulturedEntityStatus = Status.Active;
                culturedEntity           = _applicationDbContext.Add <TCulturedEntity>(map).Entity;
            }
            else
            {
                ((IEntity)entityParams).Id = culturedEntity.Id;
                var culturedEntityStatus = culturedEntity.CulturedEntityStatus;
                _mapper.Map(entityParams, culturedEntity,
                            entityParams.GetType(), typeof(TCulturedEntity));

                culturedEntity.CulturedEntityStatus = culturedEntityStatus;
                if (culturedEntity is DateOperationFields)
                {
                    var operatorFields = culturedEntity as DateOperationFields;

                    operatorFields.AssignOperatorFields(OperationType.Create);
                }
                culturedEntity.BaseEntityId = baseEntityId;
                culturedEntity = _applicationDbContext.Update(culturedEntity).Entity;
            }

            _applicationDbContext.SaveChanges();

            OnCulturedEntitySaveChanged(entityParams, culturedEntity);
            ((IEntity)entityParams).Id = culturedEntity.Id;

            //Delete UnRelated Entities
            var unRelatedEntities = Entities.Where(x => !x.CulturedEntities.Any()).ToList();

            foreach (var unRelatedEntity in unRelatedEntities)
            {
                Remove(new RemoveEntityParams(unRelatedEntity.Id, null, culturedEntity.Culture, false, false));
            }
        }
Beispiel #10
0
 protected virtual void OnSaveChanged(TEntity entity, IEntityParams entityParams)
 {
 }
Beispiel #11
0
 public virtual TEntity CreateOrUpdate(IEntityParams entityParams)
 {
     return(entityParams.Id == 0 ? Create(entityParams) : Update(entityParams));
 }
Beispiel #12
0
 protected virtual void OnSaveChanges(IEntityParams entityParams, TEntity entity)
 {
 }
Beispiel #13
0
 public virtual TEntity CreateOrUpdate(IEntityParams entityParams)
 {
     return(((IEntity)entityParams).Id == default(int) ? CreateEntity(entityParams) : UpdateEntity(entityParams));
 }
Beispiel #14
0
 protected override void OnSaveChangedAsync(IEntityParams entityParams, GameEntity entity)
 {
     base.OnSaveChangedAsync(entityParams, entity);
 }