Example #1
0
        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"));
            }
        }
Example #2
0
        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"));
            }
        }