Esempio n. 1
0
        public async Task <IActionResult> Create([FromRoute] string objectId,
                                                 [FromBody] CreateObjectEventViewModel request)
        {
            if (request == null)
            {
                return(BadRequest());
            }

            var currentUser = HttpContext.User;

            var updateCommand = new CreateObjectEventCommand(objectId, Guid.NewGuid().ToString())
            {
                Name        = request.Name,
                Description = request.Description,
                OccuredAt   = request.OccuredAt ?? DateTime.UtcNow,
                Files       = request.Files?.Select(x => new FileInfo
                {
                    FileId      = x.FileId,
                    Description = x.Description
                }).ToList(),
                Photos = request.Photos?.Select(x => new FileInfo
                {
                    FileId      = x.FileId,
                    Description = x.Description
                }).ToList()
            };

            updateCommand.SetCreator(
                long.Parse(currentUser.FindFirstValue(ClaimTypes.NameIdentifier)).ToString(),
                currentUser.FindFirstValue(ClaimTypes.Name),
                currentUser.FindFirstValue(ClaimTypes.Email));

            await _objectsEventsRepository.CreateObjectEvent(updateCommand, CancellationToken.None);

            return(Ok());
        }