public IActionResult CreatePhone(Guid organizationId, [FromBody] PhoneForCreationDto phone) { if (organizationId == new Guid()) { return(BadRequest()); } if (phone == null) { return(BadRequest()); } if (!_unitOfWork.Organizations.IsOrganizationExists(organizationId)) { return(NotFound()); } var mappedPhone = _unitOfWork.Phones.CreatePhone(organizationId, phone); if (!_unitOfWork.Complete()) { return(StatusCode(500, "A problem happened while handling your request!")); } var phoneToReturn = _mapper.Map <PhoneDto>(mappedPhone); return(CreatedAtRoute("GetPhone", new { organizationId = organizationId, phoneId = phoneToReturn.PhoneId }, phoneToReturn)); }
public async Task <ActionResult> Post([FromBody] PhoneForCreationDto phoneForCreationDto) { var phone = _mapper.Map <Phone>(phoneForCreationDto); _ = await _phoneService.Insert(phone); return(Response(phone.PhoneId)); }
public Phone CreatePhone(Guid organizationId, PhoneForCreationDto phone) { var organizationFromContext = _context.Organizations.FirstOrDefault(o => o.OrganizationId == organizationId); var mappedPhone = _mapper.Map <Phone>(phone); organizationFromContext.Phones.Add(_mapper.Map <Phone>(mappedPhone)); return(mappedPhone); }
public IHttpActionResult SavePhone([FromBody] PhoneForCreationDto newPhone) { var response = new PhoneResponse(); if (string.IsNullOrEmpty(newPhone?.PhoneNumber)) { response.Meta.HttpStatusCode = (int)HttpStatusCode.BadRequest; response.Meta.ErrorMessage = "Phone Number is null!"; response.Meta.ErrorType = "DataValidationError"; return(ResponseMessage( Request.CreateResponse( HttpStatusCode.BadRequest, response) )); } if (!ModelState.IsValid) { response.Meta.HttpStatusCode = (int)HttpStatusCode.BadRequest; response.Meta.ErrorMessage = "Phone object contains Invalid data"; response.Meta.ErrorType = "DataValidationError"; return(ResponseMessage( Request.CreateResponse( HttpStatusCode.BadRequest, response) )); } // parse the incoming string and see if it's a valid phone number var parsedPhone = PhoneHelper.Parse(newPhone.PhoneNumber); if (parsedPhone == null) { response.Meta.HttpStatusCode = (int)HttpStatusCode.BadRequest; response.Meta.ErrorMessage = $"Phone Number = {newPhone.PhoneNumber} is Invalid!"; response.Meta.ErrorType = "InvalidDataError"; return(ResponseMessage( Request.CreateResponse( HttpStatusCode.BadRequest, response))); } try { if (BondsBuddyDataStore.Current.Phones.Exists(p => p.RawPhoneNumber == parsedPhone.RawPhoneNumber)) { response.Meta.HttpStatusCode = (int)HttpStatusCode.Conflict; response.Meta.ErrorMessage = $"Phone object with Phone Number = {newPhone.PhoneNumber} already exists in database!"; response.Meta.ErrorType = "DataValidationError"; return(ResponseMessage( Request.CreateResponse( HttpStatusCode.Conflict, response))); } int maxPhoneId = BondsBuddyDataStore.Current.Phones.Any() ? BondsBuddyDataStore.Current.Phones.Max(a => a.Id) : 0; var phoneToCreate = Mapper.Map <CanonicalPhoneNumber, Phone>(parsedPhone); phoneToCreate.Id = ++maxPhoneId; phoneToCreate.PhoneName = newPhone.PhoneName; BondsBuddyDataStore.Current.Phones.Add(phoneToCreate); var newlyCreatedPhone = BondsBuddyDataStore.Current.Phones.First(a => a.Id == phoneToCreate.Id); response.Meta.HttpStatusCode = (int)HttpStatusCode.OK; var newlyCreatedPhoneDto = Mapper.Map <Phone, PhoneDto>(newlyCreatedPhone); response.Phone = newlyCreatedPhoneDto; return(CreatedAtRoute("GetPhone", new { id = phoneToCreate.Id }, response)); } catch (Exception exception) { // TODO: Log Exception details Console.WriteLine(exception.Message); response.Meta.HttpStatusCode = (int)HttpStatusCode.InternalServerError; response.Meta.ErrorMessage = "Oops! An unexpected error occurred. Our DevOps is investigating. Please try again later."; response.Meta.ErrorType = "ApiServerError"; return(ResponseMessage( Request.CreateResponse( HttpStatusCode.InternalServerError, response))); } }