예제 #1
0
        public ServiceResponse <int> CreateEvent(CreateEventRequest request)
        {
            var authResponse = _authService.GetCurrentUserId();

            if (authResponse.Failure)
            {
                return(Failure <int>());
            }

            var hasHabitResponse = _habitService.HasHabit(request.HabitId);

            if (hasHabitResponse.Failure || !hasHabitResponse.Payload)
            {
                return(Failure <int>());
            }

            var newEvent = new Event
            {
                HabitId     = request.HabitId,
                Timestamep  = request.Timestamp,
                Description = request.Description
            };

            _dataContext.Events.Add(newEvent);

            try
            { _dataContext.SaveChanges(); }
            catch (Exception)
            { return(Failure <int>()); }

            return(Success(newEvent.Id));
        }
예제 #2
0
        private static void Seed(DailyHabitsDataContext context)
        {
            if (!context.Users.Any())
            {
                context.Users.Add(new User
                {
                    Name = "Tomasz"
                });

                context.SaveChanges();
            }
        }
예제 #3
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));
        }