public async Task <IActionResult> UpdateAsync(Guid id, [FromBody] UpdateMeasureCategoryCommand command) { bool validCommand = command.Validate(); if (!validCommand) { return(CreateErrorResponse(command.ValidationResult)); } MeasureCategory measureCategory = await _measureCategoryRepository.GetDefaultByIdAsync(id); if (measureCategory == null) { return(NotFound()); } measureCategory.Update( command.Name, command.Description, command.IsFavorite ); await _measureCategoryRepository.UpdateAsync(measureCategory); return(await CommitAsync()); }
public async Task <IActionResult> GetEntriesByCategoryAsync(Guid categoryId, DateTime startDate, DateTime endDate) { MeasureCategory measureCategory = await _measureCategoryRepository.GetByIdAndProfileIdAsync(categoryId, _currentProfileId); if (measureCategory == null) { return(CreateErrorResponse("Erro de categoria", "Nenhuma categoria de medição com esse Id foi encontrada no banco de dados.")); } CategoryStatistics statistics = await _measureStatisticsDomainService.GetEntriesByCategoryAsync(measureCategory, startDate, endDate); return(CreateResponse(statistics)); }
public async Task <IActionResult> RemoveAsync(Guid id) { MeasureCategory measureCategory = await _measureCategoryRepository.GetDefaultByIdAsync(id); if (measureCategory == null) { return(NotFound()); } await _measureCategoryRepository.RemoveAsync(measureCategory); return(await CommitAsync()); }
private async Task <bool> EnsureMeasureCategoriesExists(List <MeasureLineDto> measureLines) { foreach (MeasureLineDto measureLine in measureLines) { MeasureCategory measureCategory = await _measureCategoryRepository.GetByIdAndProfileIdAsync(measureLine.MeasureCategoryId, _currentProfileId); if (measureCategory == null) { return(false); } } return(true); }
public async Task <CategoryStatistics> GetEntriesByCategoryAsync(MeasureCategory measureCategory, DateTime startDate, DateTime endDate) { List <Measure> filteredMeasures = await GetMeasuresAsync(startDate, endDate); List <StatisticEntry> entries = new List <StatisticEntry>(); foreach (Measure measure in filteredMeasures) { measure.MeasureLines .Where(ml => ml.MeasureCategoryId == measureCategory.Id) .ToList() .ForEach(ml => entries.Add(new StatisticEntry(measure.MeasureDate, ml.Value))); } return(new CategoryStatistics(measureCategory.Id, measureCategory.Name, entries.OrderByDescending(se => se.DateMeasure).ToList())); }
public async Task <IActionResult> RegisterAsync([FromBody] RegisterMeasureCategoryCommand command) { bool validCommand = command.Validate(); if (!validCommand) { return(CreateErrorResponse(command.ValidationResult)); } MeasureCategory measureCategory = new MeasureCategory( command.Name, command.Description, command.IsFavorite ); await _measureCategoryRepository.RegisterAsync(measureCategory); return(await CommitAsync()); }
public async Task <IActionResult> GetEntriesByCategoriesAsync(DateTime startDate, DateTime endDate, [FromBody] List <Guid> categoryIds) { List <MeasureCategory> measureCategories = new List <MeasureCategory>(); foreach (Guid categoryId in categoryIds) { MeasureCategory measureCategory = await _measureCategoryRepository.GetByIdAndProfileIdAsync(categoryId, _currentProfileId); if (measureCategory == null) { return(CreateErrorResponse("Erro de categoria", $"Nenhuma categoria de medição com esse Id {categoryId} foi encontrada no banco de dados.")); } measureCategories.Add(measureCategory); } List <CategoryStatistics> statistics = await _measureStatisticsDomainService.GetEntriesByCategoriesAsync(measureCategories, startDate, endDate); return(CreateResponse(statistics)); }
public async Task <MeasureResponse> GetMeasure(MeasureType measureType, MeasureCategory measureCategory, long?startDate = null, long?endDate = null, int?offset = null, long?lastUpdate = null) { try { var paramaters = new Dictionary <string, object> { { "action", ApiConstants.Measure_GetMeasureEndPoint }, { "meastype", ((int)measureType).ToString() }, { "category", ((int)measureCategory).ToString() }, { "startdate", startDate }, { "enddate", endDate }, { "offset", offset }, { "lastupdate", lastUpdate }, }.ToNullableParamaters(); return(await ExecuteGetAsync <MeasureResponse>(ApiConstants.Measure_PathSegment, paramaters)); } catch (Exception) { return(null); } }
public async Task <IActionResult> GetByIdAsync(Guid id) { MeasureCategory measureCategory = await _measureCategoryRepository.GetByIdAndProfileIdAsync(id, _currentProfileId); return(CreateResponse(measureCategory)); }
public async Task <IActionResult> GetByIdAsync(Guid id) { MeasureCategory measureCategory = await _measureCategoryRepository.GetDefaultByIdAsync(id); return(CreateResponse(measureCategory)); }
public MeasureLine(MeasureCategory measureCategory, decimal value) { MeasureCategory = measureCategory; MeasureCategoryId = measureCategory.Id; Value = value; }