public async Task <IActionResult> Put(int id, [FromBody] WhiteListUrl request)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Ok(new OperationResponse
                    {
                        HasSucceeded = false,
                        IsDomainValidationErrors = true,
                        StatusCode = ((int)ResponseStatus.BadRequest).ToString(),
                        Message = string.Join("; ", ModelState.Values
                                              .SelectMany(x => x.Errors)
                                              .Select(x => x.ErrorMessage))
                    }));
                }

                UrlWhiteListingDataAccess _whitelistingAccess = new UrlWhiteListingDataAccess(_iconfiguration);

                DatabaseResponse response = await _whitelistingAccess.WhiteListUrl(request, id);


                if (response.ResponseCode == (int)DbReturnValue.UpdateSuccess)
                {
                    return(Ok(new OperationResponse
                    {
                        HasSucceeded = true,
                        IsDomainValidationErrors = false,
                        Message = EnumExtensions.GetDescription(DbReturnValue.UpdateSuccess),
                        ReturnedObject = response.Results
                    }));
                }
                else
                {
                    Log.Error(EnumExtensions.GetDescription(DbReturnValue.UpdationFailed));

                    return(Ok(new OperationResponse
                    {
                        HasSucceeded = false,
                        IsDomainValidationErrors = false,
                        Message = EnumExtensions.GetDescription(DbReturnValue.NotExists),
                        ReturnedObject = response.Results
                    }));
                }
            }
            catch (Exception ex)
            {
                Log.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical));

                return(Ok(new OperationResponse
                {
                    HasSucceeded = false,
                    Message = StatusMessages.ServerError,
                    StatusCode = ((int)ResponseStatus.ServerError).ToString(),
                    IsDomainValidationErrors = false
                }));
            }
        }
        public async Task <DatabaseResponse> WhiteListUrl(WhiteListUrl request, int id)
        {
            try
            {
                SqlParameter[] parameters =
                {
                    new SqlParameter("@Id",             SqlDbType.Decimal),
                    new SqlParameter("@VerifiedBy",     SqlDbType.Int),
                    new SqlParameter("@IsApproved",     SqlDbType.Bit),
                    new SqlParameter("@RejectedReason", SqlDbType.NVarChar),
                    new SqlParameter("@EmailUrl",       SqlDbType.NVarChar)
                };


                parameters[0].Value = id;
                parameters[1].Value = request.VerifiedBy;
                parameters[2].Value = request.IsApproved;
                parameters[3].Value = request.RejectedReason;
                parameters[4].Value = request.EmailUrl;

                _DataHelper = new DataAccessHelper("VerifyWhiteListingRequest", parameters, _configuration);
                DataTable dt     = new DataTable();
                int       result = await _DataHelper.RunAsync(dt);

                UserEmail userEmail = null;
                if (result == (int)DbReturnValue.UpdateSuccess)
                {
                    if (dt.Rows.Count > 0)
                    {
                        userEmail       = new UserEmail();
                        userEmail.Email = Convert.ToString(dt.Rows[0]["Email"]);
                        int    portalLanguageId = Convert.ToInt32(dt.Rows[0]["PortalLanguageId"]);
                        string text             = string.Empty;
                        string buttonText       = string.Empty;
                        if (request.IsApproved)
                        {
                            //approved

                            if (portalLanguageId == 2)
                            {
                                text              = "Your requested URL has been whitelisted. Click below button to view";
                                buttonText        = "URL Approved";
                                userEmail.Subject = "URL has been whitelisted";
                            }
                            else
                            {
                                text              = "الرابط المرسل من قبلكم أصبح ضمن قائمة الروابط المعتمدة في منصة منارة، الرجاء الضغط على الرابط أدناه للعرض";
                                buttonText        = "الرابط المعتمد";
                                userEmail.Subject = "تمت الموافقة على طلب اعتماد الرابط المرسل من قبلكم";
                            }
                            userEmail.Body = Emailer.CreateEmailBody(Convert.ToString(dt.Rows[0]["UserName"]), request.EmailUrl, text, buttonText, portalLanguageId, _configuration);
                        }
                        else
                        {
                            if (portalLanguageId == 2)
                            {
                                text              = "Your requested URL has been rejected due to " + request.RejectedReason + ". Click below button to view";
                                buttonText        = "View URL Rejected";
                                userEmail.Subject = "URL has been rejected";
                            }
                            else
                            {
                                text              = "لقد تم رفض اعتماد الرابط الذي طلبته ليكون من ضمن قائمة الروابط المعتمدة في منصة منارة بسبب .<br><br>" + request.RejectedReason + "";
                                buttonText        = "عرض الرابط المرفوض";
                                userEmail.Subject = "لقد تم رفض اعتماد الرابط الذي طلبته ليكون من ضمن قائمة الروابط المعتمدة في منصة";
                            }
                            userEmail.Body = Emailer.CreateEmailBody(Convert.ToString(dt.Rows[0]["UserName"]), request.EmailUrl, text, buttonText, portalLanguageId, _configuration);
                        }
                    }
                    await Emailer.SendEmailAsync(userEmail, _configuration);
                }
                return(new DatabaseResponse {
                    ResponseCode = result
                });
            }

            catch (Exception ex)
            {
                Log.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical));
                throw;
            }
            finally
            {
                _DataHelper.Dispose();
            }
        }