public async Task <IActionResult> UpdatePartner(string accountId, [FromBody] CRMPartnerDTO dto) { try { if (string.IsNullOrWhiteSpace(accountId)) { ModelState.AddModelError("AccountId", "AccountId can't be null or empty."); return(BadRequest(ModelState)); } if (dto == null) { ModelState.AddModelError("Partner", "Partner object can't be null"); return(BadRequest(ModelState)); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var partner = _choiceRepoistory.GetById <CRMPartner>(c => c.AccountId == accountId); if (partner == null) { ModelState.AddModelError("Partner", $"No Partner found with AccountId {accountId}"); return(NotFound(ModelState)); } // if partner type is "partner then assign membershiptype. if (!string.IsNullOrWhiteSpace(dto.Partnertype) && dto.Partnertype.ToLower() == "partner") { dto.Partnertype = dto.MembershipType; } partner.Partnertype = dto.Partnertype; partner.MembershipType = dto.MembershipType; partner.PartnerName = dto.PartnerName; partner.CVR = dto.CVR; partner.Telefon = dto.Telefon; partner.Centertype = dto.Centertype; partner.Address1 = dto.Address1; partner.Address2 = dto.Address2; partner.Town = dto.Town; partner.PostNumber = dto.PostNumber; partner.Land = dto.Land; partner.StateAgreement = dto.StateAgreement; partner.Debitornummer = dto.Debitornummer; partner.Debitornummer2 = dto.Debitornummer2; partner.Regions = dto.Regions; partner.MembershipStartDate = dto.MembershipStartDate; partner.PublicURL = dto.PublicURL; partner.Email = dto.Email; partner.Website = dto.Website; partner.PanoramView = dto.PanoramView; partner.RecommandedNPGRT60 = dto.RecommandedNPGRT60; partner.QualityAssuredNPSGRD30 = dto.QualityAssuredNPSGRD30; partner.LastModified = DateTime.UtcNow; partner.LastModifiedBy = User.GetUserName(); _choiceRepoistory.Attach(partner); if (bool.Parse(_configuration["SharePointIntegrationEnabled"].ToString())) { var status = await _sharePointService.UpdatePartnerAsync(partner); if (!status) { return(StatusCode(500, "An error occurred while creating sharepoint partner. Please try again or contact adminstrator")); } } _choiceRepoistory.Complete(); return(NoContent()); } catch (Exception ex) { return(StatusCode(500, "An error occurred while updating Partner. Please try again or contact adminstrator")); } }
public async Task <IActionResult> CreatePartner([FromBody] CRMPartnerDTO dto) { try { if (string.IsNullOrEmpty(dto.AccountId)) { ModelState.AddModelError("AccountId", "AccountId can't be null"); return(BadRequest(ModelState)); } if (dto == null) { ModelState.AddModelError("Partner", "Partner object can't be null"); return(BadRequest(ModelState)); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var partner = _choiceRepoistory.GetById <CRMPartner>(c => c.AccountId == dto.AccountId); if (partner != null) { ModelState.AddModelError("Partner", $"Partner entry already exist for AccountId {dto.AccountId}."); return(BadRequest(ModelState)); } // if partner type is "partner then assign membershiptype. if (!string.IsNullOrWhiteSpace(dto.Partnertype) && dto.Partnertype.ToLower() == "partner") { dto.Partnertype = dto.MembershipType; } CRMPartner newlyCreatedPartner = _mapper.Map <CRMPartnerDTO, CRMPartner>(dto); newlyCreatedPartner.CreatedBy = User.GetUserName();; newlyCreatedPartner.CreatedDate = DateTime.UtcNow; newlyCreatedPartner.LastModified = DateTime.UtcNow; newlyCreatedPartner.LastModifiedBy = User.GetUserName();; _choiceRepoistory.Add <CRMPartner>(newlyCreatedPartner); if (bool.Parse(_configuration["SharePointIntegrationEnabled"].ToString())) { var sharePointId = await _sharePointService.InsertPartnerAsync(newlyCreatedPartner); if (sharePointId <= 0) { return(StatusCode(500, "An error occurred while creating sharepoint partner. Please try again or contact adminstrator")); } newlyCreatedPartner.SharePointId = sharePointId; } #region All related fileds CreatePartnerRelatedTablesDefaultEntries(newlyCreatedPartner); #endregion _choiceRepoistory.Complete(); return(CreatedAtRoute("GetPartnerByAccountId", new { newlyCreatedPartner.AccountId }, dto)); } catch (Exception ex) { // TODO : Add logging and decide on showing ex.message return(StatusCode(500, "An error occurred while creating partner. Please try again or contact adminstrator")); } }