示例#1
0
        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));
        }
示例#2
0
        public JsonResult Create([FromBody] CreateHabitRequest request)
        {
            var response = _habitService.CreateHabit(request);

            return(ServiceResponse(response));
        }