Beispiel #1
0
        public async Task <IActionResult> Post([FromBody] TicketMemberRequest model)
        {
            TicketMember newRecord = null;

            if (ModelState.IsValid)
            {
                InitUserCredentials();

                var existing = _ticketMemberService.Search(new TicketMemberSearchModel
                {
                    TeamUserGuid = model.TeamUserGuid,
                    UserGuid     = model.UserGuid,
                    TicketGuid   = model.TicketGuid
                }, CompanyGuid);

                if (existing.Any())
                {
                    return(Ok(_mapper.Map(existing.FirstOrDefault(), new TicketMemberResponse())));
                }

                newRecord = new TicketMember
                {
                    Guid             = Guid.NewGuid(),
                    TicketGuid       = (Guid)model.TicketGuid,
                    TeamUserGuid     = (Guid)model.TeamUserGuid,
                    CompanyGuid      = CompanyGuid,
                    UserGuid         = (Guid)model.UserGuid,
                    CreationTime     = DateTime.UtcNow,
                    CreationUserGuid = UserGuid
                };

                newRecord = _mapper.Map(model, newRecord);

                try
                {
                    await _ticketMemberService.Save(newRecord);
                }
                catch (Exception e)
                {
                    Log.Error(e.StackTrace);
                    throw;
                }
            }

            return(CreatedAtAction(nameof(Post), _mapper.Map(newRecord, new TicketMemberResponse())));
        }
Beispiel #2
0
        public async Task <IActionResult> Put([FromBody] TicketMemberRequest model, Guid guid)
        {
            if (ModelState.IsValid)
            {
                if (guid == Guid.Empty)
                {
                    return(new BadRequestResult());
                }

                var record = await _ticketMemberService.Get(guid);

                if (record == null)
                {
                    return(new NoContentResult());
                }

                InitUserCredentials();

                if (record.CreationUserGuid != UserGuid)
                {
                    return(new UnauthorizedResult());
                }

                var mapped = _mapper.Map(model, record);
                mapped.LastUpdateTime     = DateTime.Now;
                mapped.LastUpdateUserGuid = UserGuid;

                try
                {
                    await _ticketMemberService.Save(mapped);
                }
                catch (Exception e)
                {
                    Log.Error(e.StackTrace);
                    throw;
                }
            }

            return(new OkResult());
        }