Example #1
0
        public static Response UpdateExercises(CreateExerciseViewModel model)
        {
            if (model.Id == Guid.Empty)
            {
                return(null);
            }

            using (var unitOfWork = RepoUnitOfWork.New())
            {
                var exerciseRepo = unitOfWork.TrackingRepository <ExerciseRepository>();
                var exercises    = exerciseRepo.Get(model.Id);

                if (exercises == null)
                {
                    return(null);
                }

                exercises.MuscleGroupId = model.MuscleGroupId;
                exercises.PictureUrl    = model.PictureUrl;
                exercises.Description   = model.Description;
                exercises.VideoUrl      = model.VideoUrl;
                exercises.Name          = model.Name;

                var updatedExercise = exerciseRepo.Update(exercises);

                if (updatedExercise == null)
                {
                    return(null);
                }

                unitOfWork.CommitTransaction();
                return(ResponseFactory.SuccessResponse);
            }
        }
Example #2
0
        public static async Task <Response <AspNetUser> > CreateAspNetUserAsync(RepoUnitOfWork repoUnitOfWork, CreateUserModel model)
        {
            var response = ResponseFactory.Error <AspNetUser>();

            if (repoUnitOfWork == null)
            {
                repoUnitOfWork = RepoUnitOfWork.New();
            }
            var aspNetUserRepository = repoUnitOfWork.TrackingRepository <AspNetUserRepository>();

            if (!await IsEmailNotUsedAsync(model.Email).ConfigureAwait(false))
            {
                return(response);
            }
            var aspNetUser = new AspNetUser
            {
                Id            = Guid.NewGuid().ToString(),
                UserName      = model.Email,
                PasswordHash  = model.PasswordHash,
                SecurityStamp = Guid.NewGuid().ToString("D"),
            };

            var createdAspNetUser = await aspNetUserRepository.CreateAsync(aspNetUser, navigationProperties : new[]
            {
                nameof(AspNetRole)
            }).ConfigureAwait(false);

            if (createdAspNetUser == null)
            {
                return(response);
            }
            return(ResponseFactory.Success(createdAspNetUser));
        }
Example #3
0
        public static async Task <Response> Register(RegisterViewModel registerModel, string passwordHash)
        {
            using (var repoUnitOfWork = RepoUnitOfWork.New())
            {
                var aspNetUser = new AspNetUser
                {
                    Id           = registerModel.Id.ToString(),
                    Email        = registerModel.Email,
                    UserName     = registerModel.Email,
                    UserType     = (int)registerModel.userType,
                    Status       = (int)UserStatus.ACTIVE,
                    PhoneNumber  = registerModel.PhoneNumber,
                    CreatedAt    = DateTime.UtcNow,
                    PasswordHash = passwordHash,
                };

                var aspNetUserRepo = repoUnitOfWork.TrackingRepository <AspNetUserRepository>();

                var createdUser = await aspNetUserRepo.CreateAsync(aspNetUser).ConfigureAwait(false);

                if (createdUser != null)
                {
                    repoUnitOfWork.CommitTransaction();
                    return(ResponseFactory.Success <AspNetUser>());
                }
                repoUnitOfWork.RollbackTransaction();
                return(ResponseFactory.Error <AspNetUser>());
            }
        }
Example #4
0
        public static Response CreateMeal(CreateMealViewModel model)
        {
            using (var unitOfWork = RepoUnitOfWork.New())
            {
                var foodRepo = unitOfWork.Repository <FoodRepository>();
                var mealRepo = unitOfWork.Repository <MealRepository>();

                var meal = new Recipe
                {
                    Id          = Guid.NewGuid(),
                    Name        = model.Name,
                    Description = model.Description,
                    PictureUrl  = model.PictureUrl,
                };

                double?caloriValue = 0;

                var listOfFoodsAssignments = new List <RecipeFoodAssignment>();
                if (model.SelectedFoods != null)
                {
                    foreach (var item in model.SelectedFoods)
                    {
                        var food = foodRepo.Get(item.Id);
                        if (food == null)
                        {
                            unitOfWork.RollbackTransaction();
                            return(ResponseFactory.ErrorReponse);
                        }

                        caloriValue = (caloriValue + (item.Quantity * food.Calories) / food.Grams) * 100;

                        var foodItems = new RecipeFoodAssignment
                        {
                            FoodId   = item.Id,
                            RecipeId = meal.Id,
                            Quantity = item.Quantity
                        };

                        listOfFoodsAssignments.Add(foodItems);
                    }
                }
                meal.Calories = caloriValue ?? caloriValue.Value;
                meal.RecipeFoodAssignments = listOfFoodsAssignments;

                var mealCreation = mealRepo.Create(meal);
                if (mealCreation == null)
                {
                    unitOfWork.RollbackTransaction();
                    return(ResponseFactory.ErrorReponse);
                }

                unitOfWork.CommitTransaction();
                return(ResponseFactory.SuccessResponse);
            }
        }