Beispiel #1
0
            public async Task <AttachmentDto> Handle(Command request, CancellationToken cancellationToken)
            {
                var site = await _context.Sites.FirstOrDefaultAsync(x => x.SiteType == SiteTypeEnum.Blog);

                var fileUploadResult = await _uploadAccessor.AddFileAsync(request.File);

                var user = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _userAccessor.GetCurrentUsername());

                if (!user.CreatedAttachments.Any(x => x.IsMain && x.Type == AttachmentTypeEnum.Photo))
                {
                    fileUploadResult.IsMain = true;
                }

                var userAttachment = _mapper.Map <FileUploadResult, Attachment>(fileUploadResult);

                userAttachment.Site = site;

                user.CreatedAttachments.Add(userAttachment);

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    await _logger.LogActivity(
                        site.Id,
                        ActivityCodeEnum.AttachmentAdd,
                        ActivitySeverityEnum.Medium,
                        ActivityObjectEnum.Attachemnt,
                        $"The {userAttachment.Type} with the name {userAttachment.FileName} uploaded");

                    return(_mapper.Map <AttachmentDto>(userAttachment));
                }

                throw new Exception("Problem saving changes!");
            }