Ejemplo n.º 1
0
        // called by the background service every 24 hours
        // not performance important, can take as long as it needs as work is done on inexpensive background thread.
        public async Task <bool> SaveDailyChartData()
        {
            try
            {
                var boardIds = await _context.Boards.Where(b => b.IsActive == true)
                               .Select(i => i.Id)
                               .ToListAsync();

                foreach (var boardId in boardIds)
                {
                    var loggedTimes = await _context.AgileItems.Where(s => s.BoardId == boardId && s.IsActive == true).Select(t => t.LoggedTime).ToListAsync();

                    int totalTime = 0;
                    foreach (var loggedTime in loggedTimes)
                    {
                        if (loggedTime != null)
                        {
                            totalTime += Convert.ToInt32(loggedTime);
                        }
                    }
                    var completeTasks = await _context.AgileItems.Where(s => s.BoardId == boardId == s.IsActive == true && s.Status == Models.Types.Status.Complete).CountAsync();

                    var dailyData = new DailyDataDto
                    {
                        Id            = Guid.NewGuid(),
                        BoardId       = boardId,
                        Date          = DateTime.Now,
                        LoggedHours   = totalTime,
                        TasksComplete = completeTasks,
                    };

                    _context.DailyData.Add(dailyData);
                    await _context.SaveChangesAsync();
                }
                return(true);
            }
            catch (Exception e)
            {
                // exception saving daily data
            }
            return(false);
        }
Ejemplo n.º 2
0
        private DailyData ValidateAndReturnDailyDataEntities(DailyDataDto data)
        {
            var adminAreaId = GetAdminAreaId(data.Account);

            var result = new DailyData
            {
                AdminAreaId        = adminAreaId,
                Girls              = ValidateAndReturnGirls(data.Girls),
                Managers           = ValidateAndReturnManagers(data.Managers),
                Gifts              = ValidateAndReturnGifts(data.Gifts, adminAreaId),
                Men                = ValidateAndReturnMen(data.Men),
                Payments           = ValidateAndReturnPayments(data.PaymentsStatistic, adminAreaId),
                GirlsPassportScans = ValidateAndReturnGirlsPassportScans(data.Girls),
                GirlImages         = ValidateAndReturnGirlsImages(data.Girls),
                ManagersGirls      = GetManagersGirlsReference(data.Girls),
                Orders             = ValidateAndReturnOrders(data.Gifts),
                GiftOrders         = ValidateAndReturnGiftOrders(data.Gifts)
            };

            return(result);
        }
Ejemplo n.º 3
0
        public HttpResponseMessage UploadDailyData(DailyDataDto data)
        {
            _logger.Info("DataSaverController.UploadDailyData");

            try
            {
                _dailyDataService.UpdateDailyData(data);

                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
            catch (PrimeDatingException ex)
            {
                _logger.WarningException(ex.Message, ex);

                return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.GetErrorMessage()));
            }
            catch (DbEntityValidationException ex)
            {
                var message = new StringBuilder();

                message.AppendLine("Validation Error:");

                foreach (var validationError in ex.EntityValidationErrors.SelectMany(t => t.ValidationErrors))
                {
                    message.AppendLine(
                        $"PropertyName: {validationError.PropertyName}, Error: {validationError.ErrorMessage}");
                }

                _logger.ErrorException($"{ex.Message}. {message}", ex);

                return(Request.CreateResponse(HttpStatusCode.BadRequest, $"{ex.GetErrorMessage()}. {message}"));
            }
            catch (Exception ex)
            {
                _logger.ErrorException(ex.Message, ex);

                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.GetErrorMessage()));
            }
        }
Ejemplo n.º 4
0
        public void UpdateDailyData(DailyDataDto data)
        {
            var dailyData = ValidateAndReturnDailyDataEntities(data);

            UpdateManagersData(dailyData.Managers, dailyData.AdminAreaId);

            UpdateGirlsData(dailyData.Girls, dailyData.AdminAreaId);

            UpdateGirlsPassportScans(dailyData.GirlsPassportScans);

            UpdateGirlsImages(dailyData.GirlImages);

            UpdateManagersGirlsReference(dailyData.ManagersGirls);

            UpdateMenData(dailyData.Men);

            UpdateOrdersData(dailyData.Orders);

            UpdateGiftsData(dailyData.Gifts);

            UpdateGiftOrdersData(dailyData.GiftOrders);

            UpdatePaymentsData(dailyData.Payments);
        }