public ServiceResponse <int> CreateHabit(CreateHabitRequest request) { var authResponse = _authService.GetCurrentUserId(); if (authResponse.Failure) { return(Failure <int>()); } int maxOrder = _dataContext.Habits .Where(h => h.UserId == authResponse.Payload) .Select(h => h.Order) .DefaultIfEmpty(0) .Max(); var newHabit = new Habit { Name = request.Name, Icon = request.Icon, BaseColor = request.BaseColor, InitialColor = request.InitialColor, FinalColor = request.FinalColor, Target = request.Target, UserId = authResponse.Payload, Order = maxOrder + 1 }; _dataContext.Habits.Add(newHabit); try { _dataContext.SaveChanges(); } catch (Exception) { return(Failure <int>()); } return(Success(newHabit.Id)); }
public JsonResult Create([FromBody] CreateHabitRequest request) { var response = _habitService.CreateHabit(request); return(ServiceResponse(response)); }