public static Case ComplimentToCrmCase(FeedbackAndComplimentDetailsFormBuilder model, IOptions <ComplimentsListConfiguration> _complimentConfig)
        {
            model.CouncilDepartmentSub = CouncilDepartmentSubMapper.SetComplaintCouncilDepartmentSub(model.RevsBensDept, model.EnvironmentDept, model.PlanningDept);
            var events = _complimentConfig.Value.ComplimentsConfigurations;

            var eventCode = string.IsNullOrEmpty(model.CouncilDepartmentSub)
                ? events.FirstOrDefault(_ => _.EventName == model.CouncilDepartment)?.EventCode ?? events.FirstOrDefault(_ => _.EventName == "none")?.EventCode
                : events.FirstOrDefault(_ => _.EventName == model.CouncilDepartmentSub)?.EventCode ?? events.FirstOrDefault(_ => _.EventName == "none")?.EventCode;

            if ((model.CouncilDepartment == "libraries" || model.CouncilDepartmentSub == "libraries") &&
                (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "prod" || Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "stage"))
            {
                eventCode = 2002782;
            }

            string name = string.IsNullOrEmpty(model.Name) ? "Not provided" : model.Name;

            var crmCase = new Case
            {
                EventCode   = (int)eventCode,
                EventTitle  = $"Compliment",
                Description = $"Name: {name} \n\n Feedback: {model.Description}"
            };

            return(crmCase);
        }
        public static Case ToCrmCase(ComplaintDetailsFormBuilder model, IOptions <ComplaintsListConfiguration> complaintsConfig)
        {
            model.CouncilDepartmentSub = CouncilDepartmentSubMapper.SetComplaintCouncilDepartmentSub(model.RevsBensDept, model.EnvironmentDept, model.PlanningDept);
            var events = complaintsConfig.Value.ComplaintsConfigurations;

            var eventCode = string.IsNullOrEmpty(model.CouncilDepartmentSub)
                ? events.FirstOrDefault(_ => _.EventName == model.CouncilDepartment)?.EventCode ?? events.FirstOrDefault(_ => _.EventName == "none")?.EventCode
                : events.FirstOrDefault(_ => _.EventName == model.CouncilDepartmentSub)?.EventCode ?? events.FirstOrDefault(_ => _.EventName == "none")?.EventCode;

            var eventTitle = $"Complaint - {model.ComplaintAbout}";

            var crmCase = new Case
            {
                EventCode   = (int)eventCode,
                EventTitle  = eventTitle,
                Description = GenerateDescription(model.ComplaintAbout, model.ComplaintAboutDetails),
                Customer    = new Customer {
                    Forename  = model.FirstName,
                    Surname   = model.LastName,
                    Email     = model.EmailAddress,
                    Telephone = model.PhoneNumber,
                }
            };

            if (!string.IsNullOrEmpty(model.CustomersAddress.PlaceRef))
            {
                crmCase.Customer.Address = new Address
                {
                    Postcode    = model.CustomersAddress.Postcode,
                    Reference   = model.CustomersAddress.PlaceRef,
                    UPRN        = model.CustomersAddress.PlaceRef,
                    Description = model.CustomersAddress.ToString()
                };
            }
            else
            {
                crmCase.Customer.Address = new Address
                {
                    AddressLine1 = model.CustomersAddress.AddressLine1,
                    AddressLine2 = model.CustomersAddress.AddressLine2,
                    AddressLine3 = model.CustomersAddress.Town,
                    Postcode     = model.CustomersAddress.Postcode,
                    Description  = model.CustomersAddress.ToString()
                };
            }


            return(crmCase);
        }
        public static Case FeedbackToCrmCase(FeedbackAndComplimentDetailsFormBuilder model, IOptions <FeedbackListConfiguration> _feedbackConfig)
        {
            model.CouncilDepartmentSub = CouncilDepartmentSubMapper.SetComplaintCouncilDepartmentSub(model.RevsBensDept, model.EnvironmentDept, model.PlanningDept);
            var events = _feedbackConfig.Value.FeedbackConfigurations;

            var eventCode = string.IsNullOrEmpty(model.CouncilDepartmentSub)
                ? events.FirstOrDefault(_ => _.EventName == model.CouncilDepartment)?.EventCode ?? events.FirstOrDefault(_ => _.EventName == "none")?.EventCode
                : events.FirstOrDefault(_ => _.EventName == model.CouncilDepartmentSub)?.EventCode ?? events.FirstOrDefault(_ => _.EventName == "none")?.EventCode;

            string name  = string.IsNullOrEmpty(model.Name) ? "Not provided" : model.Name;
            string email = string.IsNullOrEmpty(model.EmailAddress) ? "Not provided" : model.EmailAddress;

            var crmCase = new Case
            {
                EventCode   = (int)eventCode,
                EventTitle  = $"Feedback",
                Description = $"Name: {name} \nEmail: {email}\n\nFeedback: {model.Description}"
            };

            return(crmCase);
        }