public async Task <IActionResult> UpsertAsync(LeadForDetailsDto dto) { var claimsIdentity = this.User.Identity as ClaimsIdentity; var userId = claimsIdentity.Claims.ToList().FirstOrDefault(x => x.Type == "id").Value; var companyId = claimsIdentity.Claims.ToList().FirstOrDefault(x => x.Type == "companyId").Value; var command = new UpsertLeadCommand { UserId = userId, CompanyId = Convert.ToInt32(companyId), LeadCreateDto = dto }; return(await _mediator.Send(command)); }
public async Task <IActionResult> Handle(GetLeadQuery request, CancellationToken cancellationToken) { try { var traders = await _userRepository.GetCompanyTraders(request.CompanyId); var user = traders.FirstOrDefault(x => x.Id == request.UserId); var responseTraders = new List <string>(); foreach (var trader in traders) { responseTraders.Add(trader.FirstName + " " + trader.LastName); } if (request.Id == 0) { return(new JsonResult(new ApiResponse <LeadDetailsDto> { Code = 200, ErrorMessage = "", Data = new LeadDetailsDto { Lead = new LeadForDetailsDto { Id = 0, Activities = new List <ActivityDetailsDto>(), LeadAddress = new LeadAddressDto { Id = 0, ApartmentNumber = "", City = "", HouseNumber = "", PostCode = "", Province = "", Street = "" }, LeadContacts = new List <LeadContactDto>(), LeadStatus = "", Name = "", NIP = "", Regon = "", User = "" }, CompanyTraders = responseTraders, User = user.FirstName + " " + user.LastName } })); } var lead = await _leadRepository.GetLeadAsync(request.Id, request.CompanyId); if (lead.UserId != request.UserId) { if (!(await PermissionMonitor.CheckPermissionsAsync(_userRepository, request.UserId, "Modyfikacja cudzych leadów"))) { return(new JsonResult(new ApiResponse <object> { Data = null, Code = 403, ErrorMessage = "Brak uprawnień" })); } } if (lead != null) { var leadResponse = new LeadForDetailsDto { Id = lead.Id, Activities = new List <ActivityDetailsDto>(), LeadContacts = new List <LeadContactDto>(), LeadStatus = lead.LeadStatus.Name, Name = lead.Name, NIP = lead.NIP, Regon = lead.Regon, User = lead.User.FirstName + " " + lead.User.LastName }; leadResponse.LeadAddress = new LeadAddressDto { Id = lead.LeadAddress.Id, ApartmentNumber = lead.LeadAddress.ApartmentNumber, City = lead.LeadAddress.City, HouseNumber = lead.LeadAddress.HouseNumber, PostCode = lead.LeadAddress.PostCode, Province = lead.LeadAddress.Province, Street = lead.LeadAddress.Street }; var counter = 1; foreach (var contact in lead.LeadContacts) { leadResponse.LeadContacts.Add(new LeadContactDto { Deleted = false, Department = contact.Department, Email = contact.Email, Id = contact.Id, LocalId = counter, Name = contact.Name, PhoneNumber = contact.PhoneNumber }); counter++; } counter = 1; foreach (var activity in lead.Activities) { leadResponse.Activities.Add(new ActivityDetailsDto { Deleted = false, ActivityDate = activity.ActivityDate, ActivityType = activity.ActivityType.Name, LocalId = counter, Id = activity.Id, User = activity.User.FirstName + " " + activity.User.LastName }); counter++; } return(new JsonResult(new ApiResponse <LeadDetailsDto> { Code = 200, ErrorMessage = "", Data = new LeadDetailsDto { Lead = leadResponse, CompanyTraders = responseTraders, User = user.FirstName + " " + user.LastName } })); } return(new JsonResult(new ApiResponse <object> { Data = null, Code = 404, ErrorMessage = "Nie znaleziono leada o id=" + request.Id + ", skontaktuj się z działem IT." })); } catch { return(new JsonResult(new ApiResponse <object> { Data = null, Code = 500, ErrorMessage = "Nastąpił problem z serwerem, skontaktuj się z działem IT." })); } }