public async Task <TicketMember> Save(TicketMember record) { if (record.TicketMemberId <= 0) { await _dbContext.AddAsync(record); } else { _dbContext.Update(record); } await _dbContext.SaveChangesAsync(); return(record); }
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()))); }