public HttpResponseMessage UpdateCompanyRequest(CompanyRequestDto companyRequestDto)
        {
            companyRequestDto.CrudStatus = CrudStatus.UPDATE;
            Response <CompanyRequestDto> response = companyRequestManager.Save(companyRequestDto);

            return(Request.CreateResponse <Response <CompanyRequestDto> >(HttpStatusCode.OK, response));
        }
        public Response <CompanyRequestDto> Save(CompanyRequestDto companyRequestDto)
        {
            using (UnitOfWork unitOfWork = new UnitOfWork())
            {
                var response = unitOfWork.CompanyRequests.Save(companyRequestDto, CompanyRequestMapper.Instance.MapToCompanyRequestDto);

                if (response.HasErrors)
                {
                    return(response);
                }

                if (companyRequestDto.CrudStatus == CrudStatus.CREATE)
                {
                    SendCreateCompanyRequestEmail(response.Item);
                }

                return(response);
            }
        }
        public CompanyRequestDto MapToCompanyRequestDto(SqlDataReader sqlDataReader)
        {
            CompanyRequestDto companyRequestDto = new CompanyRequestDto();

            companyRequestDto.Id              = sqlDataReader["Id"].ToNullableInteger();
            companyRequestDto.FirstName       = sqlDataReader["FirstName"].ToString();
            companyRequestDto.LastName        = sqlDataReader["LastName"].ToString();
            companyRequestDto.EmailAddress    = sqlDataReader["EmailAddress"].ToString();
            companyRequestDto.ContactNumber   = sqlDataReader["ContactNumber"].ToString();
            companyRequestDto.PhysicalAddress = sqlDataReader["PhysicalAddress"].ToString();
            companyRequestDto.Description     = sqlDataReader["Description"].ToString();
            companyRequestDto.StatusId        = sqlDataReader["StatusId"].ToInteger();
            companyRequestDto.StatusName      = sqlDataReader["StatusName"].ToString();
            companyRequestDto.StatusCode      = sqlDataReader["StatusCode"].ToString();
            companyRequestDto.CreateDate      = sqlDataReader["CreateDate"].ToDateTime();
            companyRequestDto.EditDate        = sqlDataReader["EditDate"].ToDateTime();
            companyRequestDto.CrudStatus      = CrudStatus.UPDATE;

            return(companyRequestDto);
        }
        private void SendCreateCompanyRequestEmail(CompanyRequestDto companyRequestDto)
        {
            string smtpServerAddress = ConfigurationManager.AppSettings["LiveSMTPAddress"];
            int    smtpPortNumber    = Convert.ToInt32(ConfigurationManager.AppSettings["LiveSMTPPortNumber"]);
            string fromAddress       = ConfigurationManager.AppSettings["LiveEmailFrom"];
            string toAddress         = ConfigurationManager.AppSettings["LiveEmailReciever"];
            string accountUserName   = ConfigurationManager.AppSettings["LiveAccountUsername"];
            string accountPassword   = ConfigurationManager.AppSettings["LiveAccountPassword"];

            string subject = string.Format("{0} Email notification ... Request to Join {0}!", ConfigurationManager.AppSettings["SiteName"]);

            StringBuilder sb = new StringBuilder();

            // Add email heading
            sb.Append(string.Format("Dear {0} Admin.", "Essentails for Women"));
            sb.Append("<br />");
            sb.Append("<br />");
            sb.Append(string.Format("This Email serves a notification for a new request to join Essentails for Women, from the following entity."));
            sb.Append("<br />");
            sb.Append("<br />");
            sb.Append(string.Format("Contact Name: {0} {1}", companyRequestDto.FirstName, companyRequestDto.LastName));
            sb.Append("<br />");
            sb.Append(string.Format("Address: {0}", companyRequestDto.PhysicalAddress));
            sb.Append("<br />");
            sb.Append(string.Format("Contact Number: {0}", companyRequestDto.ContactNumber));
            sb.Append("<br />");

            if (!string.IsNullOrEmpty(companyRequestDto.EmailAddress))
            {
                sb.Append(string.Format("Email Address: {0}", companyRequestDto.EmailAddress));
            }
            sb.Append("<br />");
            sb.Append(string.Format("<li>Log on to {0} by clicking on this link <a href='{1}'>{1}</a></li>", ConfigurationManager.AppSettings["SiteName"], ConfigurationManager.AppSettings["SiteUrl"]));
            sb.Append("<li> Complete the request.</li>");
            sb.Append("</ol>");

            EmailHandler.SendEmailUsingExternalMailBox(smtpServerAddress, smtpPortNumber, accountUserName, accountPassword, fromAddress, toAddress, null, subject, sb.ToString());
        }