public UserActivityDto GetUserActivity(UserActivity userActivity)
        {
            UserActivityDto result = new UserActivityDto();

            result.date       = userActivity.Date.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
            result.loginTime  = userActivity.LogInTime.ToString();
            result.logoutTime = userActivity.LogOutTime.ToString();
            result.timeSpend  = userActivity.TimeSpend.ToString();
            result.reason     = userActivity.Reason;
            return(result);
        }
Exemple #2
0
 public async Task CreateUserActivity(PerformedAction action, string username = null, string drinkId = null, string drinkName = null,
                                      string searchedPhrase = null, int?score = null)
 {
     using var httpClient = new HttpClient();
     var newUserActivity = new UserActivityDto
     {
         Username       = username,
         Action         = action,
         DrinkId        = drinkId,
         DrinkName      = drinkName,
         SearchedPhrase = searchedPhrase,
         Score          = score
     };
     var content  = new StringContent(JsonConvert.SerializeObject(newUserActivity), Encoding.UTF8, "application/json");
     var response = await httpClient.PostAsync(CreateActivityAddress, content);
 }
Exemple #3
0
        public async Task <IActionResult> CreateActivity(UserActivityDto model)
        {
            var activity = new UserActivity
            {
                Username       = model.Username,
                Action         = model.Action,
                DrinkId        = model.DrinkId,
                DrinkName      = model.DrinkName,
                SearchedPhrase = model.SearchedPhrase,
                Score          = model.Score,
                Created        = DateTime.Now
            };
            await _activitiesRepository.AddActivity(activity);

            await _activitiesRepository.SaveChanges();

            if (string.IsNullOrEmpty(model.Username))
            {
                return(BadRequest("Username was empty"));
            }
            return(Ok());
        }
Exemple #4
0
        public async Task <int> SaveAsync(UserActivityDto entityDto)
        {
            var result = await SaveAndReturnEntityAsync(entityDto);

            return(result.Id);
        }
        public ReportExporterResponse GenerateReportForExport(UserActivityDto userActivity, ReportFormatType formatType)
        {
            try
            {
                //If using Professional version, put your serial key below.
                SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
                // Continue to use the component in a Trial mode when free limit is reached.
                SpreadsheetInfo.FreeLimitReached += (sender, e) => e.FreeLimitReachedAction = FreeLimitReachedAction.ContinueAsTrial;
                var worklogs      = userActivity.WorkLogItems;
                int numberOfItems = worklogs.Count;

                var stringPath = _readOnlyTemplateStorageService.GetPathByKey(ReportType.ActivitiesReport.ToString());
                // Load an Excel template. xls
                var workbook = ExcelFile.Load(stringPath);

                // Get template sheet.
                var worksheet = workbook.Worksheets[0];

                // Find cells with placeholder text and set their values.
                int row, column;
                if (worksheet.Cells.FindText("Name#", out row, out column))
                {
                    worksheet.Cells[row, column].Value = userActivity.UserName;
                }
                if (worksheet.Cells.FindText("Surname#", out row, out column))
                {
                    worksheet.Cells[row, column].Value = userActivity.UserSurname;
                }
                if (worksheet.Cells.FindText("Project name#", out row, out column))
                {
                    worksheet.Cells[row, column].Value = userActivity.ProjectName;
                }
                if (worksheet.Cells.FindText("Email#", out row, out column))
                {
                    worksheet.Cells[row, column].Value = userActivity.UserEmail;
                }

                // Copy template row.
                row = 16;
                worksheet.Rows.InsertCopy(row + 1, numberOfItems, worksheet.Rows[row]);

                // Fill copied rows with sample data.
                for (int i = 0; i < numberOfItems; i++)
                {
                    var currentRow = worksheet.Rows[row + i];
                    currentRow.Cells[0].SetValue(worklogs[i].StartDate.DateTime.Date.ToShortDateString());
                    currentRow.Cells[1].SetValue(worklogs[i].Description);
                    currentRow.Cells[2].SetValue(worklogs[i].StartDate.DateTime.ToShortTimeString());
                    currentRow.Cells[3].SetValue(worklogs[i].ActivityType.ToString());
                    currentRow.Cells[4].SetValue(new TimeSpan(worklogs[i].TimeSpent).TotalHours);
                }

                worksheet.Rows[11].Cells[4].SetValue(new TimeSpan(userActivity.TotalWorkLogInSeconds).TotalHours);
                worksheet.Calculate();
                // Save the modified Excel template to output file.
                var saveOptions = GetFormatOptions(formatType);

                using var stream = new MemoryStream();
                workbook.Save(stream, saveOptions.Item2);
                return(new ReportExporterResponse
                {
                    FileContentType = saveOptions.Item2.ContentType,
                    FileName =
                        $"Worklog_{userActivity.UserName}_{userActivity.UserSurname}_{DateTime.UtcNow}.{saveOptions.Item1.ToLower()}",
                    FileBytes = stream.ToArray(),
                });
            }
            catch (Exception e)
            {
                _logger.LogError(e, "An error occured while creating report");
                Console.WriteLine(e);
                throw;
            }
        }
Exemple #6
0
 public async Task <UserActivityDto> PutUserActivity(int id, UserActivityDto model)
 {
     return(await _userActivityApiClient.PutUserActivity(id, model));
 }
Exemple #7
0
 public async Task <UserActivityDto> PostUserActivity(UserActivityDto model)
 {
     return(await _userActivityApiClient.PostUserActivity(model));
 }
        public ReportExporterResponse GenerateReportForExport(UserActivityDto userActivity, ReportFormatType formatType)
        {
            // If using Professional version, put your serial key below.
            SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
            var worklogs      = userActivity.WorkLogItems;
            int numberOfItems = worklogs.Count;

            var stringPath = _readOnlyTemplateStorageService.GetPathByKey(ReportType.ActivitiesReport.ToString());
            // Load an Excel template. xls
            var workbook = ExcelFile.Load(stringPath);

            // Get template sheet.
            var worksheet = workbook.Worksheets[0];

            // Find cells with placeholder text and set their values.
            int row, column;

            if (worksheet.Cells.FindText("[Name#]", out row, out column))
            {
                worksheet.Cells[row, column].Value = userActivity.UserName;
            }
            if (worksheet.Cells.FindText("[Surname#]", out row, out column))
            {
                worksheet.Cells[row, column].Value = userActivity.UserSurname;
            }
            if (worksheet.Cells.FindText("[Project name#]", out row, out column))
            {
                worksheet.Cells[row, column].Value = userActivity.ProjectName;
            }
            if (worksheet.Cells.FindText("[Email#]", out row, out column))
            {
                worksheet.Cells[row, column].Value = userActivity.UserEmail;
            }

            // Copy template row.
            row = 17;
            worksheet.Rows.InsertCopy(row + 1, numberOfItems - 1, worksheet.Rows[row]);


            // Fill copied rows with sample data.
            var random = new Random();

            for (int i = 0; i < numberOfItems; i++)
            {
                var currentRow = worksheet.Rows[row + i];
                currentRow.Cells[1].SetValue(worklogs[i].StartDate.DateTime.ToLongDateString());
                currentRow.Cells[2].SetValue(worklogs[i].Description);
                currentRow.Cells[3].SetValue(worklogs[i].ActivityType.ToString());
                currentRow.Cells[4].SetValue(worklogs[i].TimeSpent.ToString(@"dd\.hh\:mm\:ss"));
            }

            worksheet.Rows[12].Cells[4].SetValue(userActivity.TotalWorkLogInSeconds);
            worksheet.Calculate();
            // Save the modified Excel template to output file.

            var saveOptions = GetFormatOptions(formatType);

            using var stream = new MemoryStream();
            workbook.Save(stream, saveOptions.Item2);
            return(new ReportExporterResponse
            {
                FileContentType = saveOptions.Item2.ContentType,
                FileName =
                    $"Worklog_{userActivity.UserName}_{userActivity.UserSurname}_{DateTime.UtcNow}.{saveOptions.Item1.ToLower()}",
                FileBytes = stream.ToArray()
            });
        }