public FirmRegistrationResponse RegisterFirmOwner([FromBody] Firm firm)
        {
            FirmRegistrationResponse firmRegistrationResponse = null;

            if (firm != null)
            {
                firmRegistrationResponse = _registrationService.RegisterFirmOwner(firm);
            }
            else
            {
                firmRegistrationResponse.RegistrationStatus = false;
            }
            return(firmRegistrationResponse);
        }
        public FirmRegistrationResponse RegisterFirmOwner(Firm firm)
        {
            FirmRegistrationResponse firmRegistrationResponse = new FirmRegistrationResponse();
            string failureMessage = string.Empty;
            var    errorList      = new List <String>();

            try
            {
                using (SqlCommand sqlCommand = new SqlCommand())
                {
                    sqlCommand.Connection  = _connection;
                    sqlCommand.CommandType = System.Data.CommandType.StoredProcedure;
                    sqlCommand.CommandText = "spInsertIntoFirm";
                    sqlCommand.Parameters.AddWithValue("Id", firm.Id);
                    sqlCommand.Parameters.AddWithValue("Name", firm.Name);
                    sqlCommand.Parameters.AddWithValue("Email", firm.Email);
                    sqlCommand.Parameters.AddWithValue("PhoneNumber", firm.PhoneNumber);
                    sqlCommand.Parameters.AddWithValue("Password", firm.Password);


                    if (_connection.State == System.Data.ConnectionState.Closed)
                    {
                        _connection.Open();
                    }

                    int rowsAffected = sqlCommand.ExecuteNonQuery();

                    if (rowsAffected > 0)
                    {
                        firmRegistrationResponse.RegistrationStatus = true;
                        firmRegistrationResponse.SuccessMessage     = "Your Firm Registered successfully";

                        //Sending notification after successfull registration

                        NotificationDetails notificationDetails = new NotificationDetails()
                        {
                            NotificationType = NotificationType.FirmOwnerRegistration.ToString(),
                            Body             = "Your Firm is successfully registered and please find your registration details below." +
                                               Environment.NewLine + "Firm Name : " + firm.Name +
                                               Environment.NewLine + "Firm ID : " + firm.Id +
                                               Environment.NewLine + "Phone Number : " + firm.PhoneNumber +
                                               Environment.NewLine + "Email ID : " + firm.Email,
                            Subject        = "FinancingPMS Firm Owner Registration Update",
                            ReceiverMailID = firm.Email
                        };

                        _notificationService.SendNotification(notificationDetails);
                    }
                    else
                    {
                        firmRegistrationResponse.RegistrationStatus = false;
                        failureMessage = "Firm Registration failed";
                        errorList.Add(failureMessage);
                        firmRegistrationResponse.ErrorDetails = errorList;
                    }
                }
            }
            catch (Exception ex)
            {
                firmRegistrationResponse.RegistrationStatus = false;
                errorList.Add(ex.Message);
                firmRegistrationResponse.ErrorDetails = errorList;
            }
            finally
            {
                _connection.Close();
            }
            return(firmRegistrationResponse);
        }