Esempio n. 1
0
            public async Task <Response> Handle(Request request, CancellationToken cancellationToken)
            {
                var state = await _context.BoardStates.FindAsync(request.Ticket.BoardStateId);

                var username            = _httpContextAccessor.HttpContext.User.Identity.Name;
                var currentTeamMemberId = (await _context.TeamMembers.SingleAsync(x => x.Name == username)).TeamMemberId;

                var ticket = await _context.Tickets
                             .Include(x => x.TicketStates)
                             .ThenInclude(x => x.BoardState)
                             .FirstOrDefaultAsync(x => x.TicketId == request.Ticket.TicketId);

                if (ticket == null)
                {
                    ticket = new(currentTeamMemberId, request.Ticket.Name, request.Ticket.Url, (Html)request.Ticket.AcceptanceCriteria, (Html)request.Ticket.Description);
                    _context.Tickets.Add(ticket);
                }
                else
                {
                    ticket.Update(currentTeamMemberId, request.Ticket.Name, request.Ticket.Url, (Html)request.Ticket.AcceptanceCriteria, (Html)request.Ticket.Description);
                }

                ticket.TicketStates.Clear();

                ticket.TicketStates.Add(new(state));

                await _context.SaveChangesAsync(cancellationToken);

                return(new());
            }
Esempio n. 2
0
            public async Task <Response> Handle(Request request, CancellationToken cancellationToken)
            {
                var httpContext        = _httpContextAccessor.HttpContext;
                var defaultFormOptions = new FormOptions();
                var tickets            = new List <Ticket>();

                if (!MultipartRequestHelper.IsMultipartContentType(httpContext.Request.ContentType))
                {
                    throw new Exception($"Expected a multipart request, but got {httpContext.Request.ContentType}");
                }

                var mediaTypeHeaderValue = MediaTypeHeaderValue.Parse(httpContext.Request.ContentType);

                var boundary = MultipartRequestHelper.GetBoundary(
                    mediaTypeHeaderValue,
                    defaultFormOptions.MultipartBoundaryLengthLimit);

                var reader = new MultipartReader(boundary, httpContext.Request.Body);

                var section = await reader.ReadNextSectionAsync();

                while (section != null)
                {
                    //var ticket = new Ticket();

                    var hasContentDispositionHeader = ContentDispositionHeaderValue.TryParse(section.ContentDisposition, out ContentDispositionHeaderValue contentDisposition);

                    if (hasContentDispositionHeader)
                    {
                        if (MultipartRequestHelper.HasFileContentDisposition(contentDisposition))
                        {
                            using (var targetStream = new MemoryStream())
                            {
                                await section.Body.CopyToAsync(targetStream);

                                //ticket.Name = $"{contentDisposition.FileName}".Trim(new char[] { '"' }).Replace("&", "and");

                                /*                                digitalAsset.Bytes = StreamHelper.ReadToEnd(targetStream);
                                 *                              digitalAsset.ContentType = section.ContentType;*/
                            }
                        }
                    }

                    //_context.Tickets.Add(ticket);

                    //tickets.Add(ticket);

                    section = await reader.ReadNextSectionAsync();
                }

                await _context.SaveChangesAsync(cancellationToken);

                return(new()
                {
                    TicketIds = tickets.Select(x => x.TicketId).ToList()
                });
            }
Esempio n. 3
0
            public async Task<Response> Handle(Request request, CancellationToken cancellationToken)
            {

                var board = Board.WithDefaults(request.Name);

                _context.Boards.Add(board);

                await _context.SaveChangesAsync(cancellationToken);

                return new() { Board = board.ToDto() };
            }
        }