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)); }
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(); } }
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); }
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); }