Example #1
0
        public async Task <bool> CreateItemAsync(ItemBindingModel model)
        {
            if (model.Price <= 0 ||
                string.IsNullOrEmpty(model.Name) ||
                string.IsNullOrEmpty(model.Description) ||
                model.ImgUrl == null)
            {
                return(false);
            }

            var item = this.mapper.Map <Item>(model);
            var url  = MyCloudinary.UploadImage(model.ImgUrl, model.Name);

            item.ImgUrl = url ?? Constants.CloudinaryInvalidUrl;

            var category = this.context.ChildCategories.FirstOrDefault(cat => cat.Name == model.CategoryName.ToString());
            var supplier = this.context.Suppliers.FirstOrDefault(sup => sup.Name == model.SupplierName);

            item.ItemCategories.Add(new ItemCategory {
                ChildCategoryId = category.Id
            });
            item.Supplier = supplier;

            await this.context.Items.AddAsync(item);

            await this.context.SaveChangesAsync();

            return(this.context.Items.Contains(item));
        }
Example #2
0
        public async Task UpdateProfileAsync(UserProfile model, string username)
        {
            var userFromDb = await this.context.Users.Include(x => x.Address).SingleOrDefaultAsync(user => user.UserName == username);

            if (userFromDb != null)
            {
                userFromDb.Weight           = model.Weight;
                userFromDb.Height           = model.Height;
                userFromDb.Description      = model.Description;
                userFromDb.Age              = model.Age;
                userFromDb.Address.Location = model.Adress;

                if (userFromDb.Activity != model.Actity)
                {
                    userFromDb.Activity = model.Actity;
                }

                if (model.ProfilePictureUrl != null)
                {
                    userFromDb.ProfilePicturImgUrl = MyCloudinary.UploadImage(model.ProfilePictureUrl, "Picture");
                }

                this.context.Update(userFromDb);
                await this.context.SaveChangesAsync();
            }
        }
Example #3
0
        public async Task <ArticleViewModel> CreateArticleAsync(CreateArticleBindingModel model, string usersName)
        {
            Article articleForDb = null;

            await Task.Run(async() =>
            {
                var user = await this.usersService.GetUserByUsernameAsync(usersName);
                var url  = MyCloudinary.UploadImage(model.ImgUrl, model.Title);

                articleForDb          = this.mapper.Map <Article>(model);
                articleForDb.ImgUrl   = url ?? Constants.CloudinaryInvalidUrl;
                articleForDb.AuthorId = user.Id;

                this.context.Articles.Add(articleForDb);
                this.context.SaveChanges();
            });

            var articleToReturn = this.mapper.Map <ArticleViewModel>(articleForDb);

            return(articleToReturn);
        }
Example #4
0
        public async Task <bool> BecomeTrainerAsync(ClientToTrainerBindingModel model, string username)
        {
            OlympiaUser realUser = this.context.Users.SingleOrDefault(user => user.UserName == username);

            realUser.Age         = model.Age;
            realUser.Description = model.Description;
            realUser.Email       = model.Email;
            realUser.FullName    = model.FullName;
            realUser.Weight      = model.Weight;
            realUser.Height      = model.Height;

            if (model.ProfilePictureUrl != null)
            {
                var url = MyCloudinary.UploadImage(model.ProfilePictureUrl, model.Username);
                realUser.ProfilePicturImgUrl = url ?? Constants.CloudinaryInvalidUrl;
            }

            this.context.Update(realUser);
            await this.context.SaveChangesAsync();

            await this.userManager.UpdateSecurityStampAsync(realUser);

            var userRemovedFromRole = await this.userManager.RemoveFromRoleAsync(realUser, GlobalConstants.ClientRoleName);

            var roleHasChanged = await this.userManager.AddToRoleAsync(realUser, GlobalConstants.TrainerRoleName);

            if (!roleHasChanged.Succeeded)
            {
                return(false);
            }

            await this.userManager.UpdateAsync(realUser);

            this.context.Update(realUser);
            await this.context.SaveChangesAsync();

            var result = await this.userManager.IsInRoleAsync(realUser, GlobalConstants.TrainerRoleName);

            return(result);
        }
        public async Task <OlympiaUser> RegisterUserAsync(UserRegisterBingingModel model)
        {
            await this.AddRootAdminIfDoesNotExistAsync();

            if (model.Age < 12 || model.Age > 65 ||
                string.IsNullOrEmpty(model.Username) ||
                string.IsNullOrEmpty(model.FullName) ||
                this.CheckForExistingUser(model) ||
                !this.CheckUsername(model.Username) ||
                !this.CheckFullName(model.FullName))
            {
                return(null);
            }

            var user = this.mapper.Map <OlympiaUser>(model);

            user.Address.Location    = model.Address;
            user.ShoppingCart.UserId = user.Id;

            var result = await this.userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                await this.userManager.AddToRoleAsync(user, GlobalConstants.ClientRoleName);
            }

            if (model.ProfilePicturImgUrl != null)
            {
                var url = MyCloudinary.UploadImage(model.ProfilePicturImgUrl, model.Username);
                user.ProfilePicturImgUrl = url ?? Constants.CloudinaryInvalidUrl;
            }

            this.context.Update(user);
            await this.context.SaveChangesAsync();

            return(user);
        }