public async Task <IActionResult> Update(int id, [FromBody] EventItemRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var userIdClaim = ((ClaimsIdentity)User.Identity).FindFirst(ClaimTypes.NameIdentifier); var userId = int.Parse(userIdClaim.Value); await _eventsRepository.Update(id, request, userId); return(NoContent()); } catch (InvalidEventException) { return(NotFound()); } catch (InvalidOfficeException) { string errorText = String.Format("Office with ID: {0} doesn't exist", request.OfficeId); return(StatusCode(StatusCodes.Status409Conflict, new { Message = errorText })); } catch (InvalidDeviceException) { string errorText = String.Format("Device with ID: {0} doesn't exist", request.DeviceId); return(StatusCode(StatusCodes.Status409Conflict, new { Message = errorText })); } }
public async Task <int> Create(EventItemRequest request, int userId) { var office = _dbContext.Offices .AsNoTracking() .FirstOrDefaultAsync(x => x.Id == request.OfficeId); var device = _dbContext.Devices .AsNoTracking() .FirstOrDefaultAsync(x => x.Id == request.DeviceId); await Task.WhenAll(office, device); if (office.Result == null) { throw new InvalidOfficeException(); } if (device.Result == null) { throw new InvalidDeviceException(); } var newItem = new Event { Action = request.Action, DeviceId = device.Result.Id, OfficeId = office.Result.Id, UserId = userId, CreatedOn = request.Date, }; _dbContext.Events.Add(newItem); await _dbContext.SaveChangesAsync(); return(newItem.Id); }
protected override CachedTask <EventItemResponse> GetData(bool force, CancellationToken token) { if (force) { var request = new EventItemRequest { ItemId = _itemId, UserTickets = _settings.UserTickets.ToArray(), Language = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName }; return(CachedTask.Create(() => _eventsService.GetEventItemAsync(request, token), _itemId, DateTime.Now.Add(CacheDuration))); } return(CachedTask.NoNewData <EventItemResponse>()); }
public async Task Update(int id, EventItemRequest request, int userId) { var item = await _dbContext.Events .FirstOrDefaultAsync(x => x.Id == id); if (item == null) { throw new InvalidEventException(); } var office = _dbContext.Offices .AsNoTracking() .FirstOrDefaultAsync(x => x.Id == request.OfficeId); var device = _dbContext.Devices .AsNoTracking() .FirstOrDefaultAsync(x => x.Id == request.DeviceId); await Task.WhenAll(office, device); if (office.Result == null) { throw new InvalidOfficeException(); } if (device.Result == null) { throw new InvalidDeviceException(); } item.Action = request.Action; item.DeviceId = device.Result.Id; item.OfficeId = office.Result.Id; item.UserId = userId; item.CreatedOn = request.Date; await _dbContext.SaveChangesAsync(); }
public Task <EventItemResponse> GetEventItemAsync(EventItemRequest request, CancellationToken cancellationToken) { return(CallAsync <EventItemRequest, CancellationToken, EventItemResponse>(x => x.GetEventItemAsync, request, cancellationToken)); }