private async Task <bool> SaveUsersChanges(UsersChanges changesData, int userId)
        {
            changesData.UserId     = userId;
            changesData.DeviceTag  = GetDeviceTag();
            changesData.When       = DateTime.Now;
            changesData.ChangeType = 11;
            Entity.UsersChanges.Add(changesData);
            var validationErrors = Entity.GetValidationErrors().ToList();

            if (validationErrors.Count > 0)
            {
                foreach (var item in validationErrors)
                {
                    Log.Error(LogTag.SaveUsersChanges_EntityValidationErrors, Request, new { item.ValidationErrors });
                }
                return(false);
            }

            try {
                await Entity.SaveChangesAsync();
            } catch (Exception e) {
                Log.Error(LogTag.SaveUsersChanges_EntityError, Request, e);
                return(false);
            }

            return(true);
        }
Ejemplo n.º 2
0
 public IHttpActionResult GetLastUsersChanges()
 {
     try
     {
         UsersChanges user_changes = this.ef_uc.Get().OrderByDescending(u => u.id).FirstOrDefault();
         if (user_changes == null)
         {
             return(NotFound());
         }
         return(Ok(user_changes));
     }
     catch (Exception e)
     {
         String.Format("Ошибка выполнения метода API:GetLastUsersChanges()").SaveError(e);
         return(NotFound());
     }
 }
        private async Task <UserProfileChangedData> GetChangedPropertiesList(UserProfileModel model, AspNetUser identityUser, User userData)
        {
            var changedValues     = new UsersChanges();
            var changedProperties = new List <string>();

            if (model.Email != identityUser.Email)
            {
                if (await UpdateUserEmailAsync(model.Email))
                {
                    changedValues.Email = identityUser.Email;
                    changedProperties.Add(nameof(identityUser.Email));
                }
                else
                {
                    return new UserProfileChangedData {
                               IsEmailValid = false
                    }
                }
            }
            ;

            if (model.BirthYear != userData.BirthYear)
            {
                changedValues.BirthYear = userData.BirthYear;    changedProperties.Add(nameof(userData.BirthYear));
            }
            if (model.BirthMonth != userData.BirthMonth)
            {
                changedValues.BirthMonth = userData.BirthMonth;   changedProperties.Add(nameof(userData.BirthMonth));
            }
            if (model.Country != userData.CountryId)
            {
                changedValues.Country = userData.CountryId;    changedProperties.Add(nameof(userData.CountryId));
            }
            if (model.Location != userData.Location)
            {
                changedValues.Location = userData.Location;     changedProperties.Add(nameof(userData.Location));
            }
            if (model.Knows != userData.KnowsId)
            {
                changedValues.KnowsId = userData.KnowsId;      changedProperties.Add(nameof(userData.KnowsId));
            }
            if (model.Knows2 != userData.Knows2Id)
            {
                changedValues.Knows2Id = userData.Knows2Id;     changedProperties.Add(nameof(userData.Knows2Id));
            }
            if (model.Knows2 != userData.Knows3Id)
            {
                changedValues.Knows2Id = userData.Knows2Id;     changedProperties.Add(nameof(userData.Knows3Id));
            }
            if (model.Learns != userData.LearnsId)
            {
                changedValues.LearnsId = userData.LearnsId;     changedProperties.Add(nameof(userData.LearnsId));
            }
            if (model.Learns2 != userData.Learns2Id)
            {
                changedValues.Learns2Id = userData.Learns2Id;    changedProperties.Add(nameof(userData.Learns2Id));
            }
            if (model.Learns3 != userData.Learns3Id)
            {
                changedValues.Learns3Id = userData.Learns3Id;    changedProperties.Add(nameof(userData.Learns3Id));
            }
            if (model.Introduction != userData.Introduction)
            {
                changedValues.Introduction = userData.Introduction; changedProperties.Add(nameof(userData.Introduction));
            }

            bool isTagsNeedToUpdate = CheckUpdatedTags(model, userData);

            UserProfileChangedData changedData = new UserProfileChangedData {
                ChangedProperties = changedProperties,
                IsTagsUpdated     = isTagsNeedToUpdate
            };

            if (changedData.ChangedProperties.Count > 0)
            {
                changedData.ChangedValues = changedValues;
            }
            return(changedData);
        }