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); }
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); }
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()); }
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; } }
public async Task <UserActivityDto> PutUserActivity(int id, UserActivityDto model) { return(await _userActivityApiClient.PutUserActivity(id, model)); }
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() }); }