public async Task <StatusResult> UploadInspectionXml(Inspection model)
        {
            StatusResult c = new StatusResult();

            try
            {
                if (!ModelState.IsValid)
                {
                    var errors = ModelState.Where(x => x.Value.Errors.Count > 0).Select(x => x.Value.Errors.Select(y => y.ErrorMessage)).ToList();
                    Log.Error(Logfornet.LogMessage(model.CompanyId, "UploadInspectionXml", errors.ToArray(), ""));

                    c.Status = Status.BadRequest.ToString();
                    c.Result = BadRequest();
                    return(c);
                }
                if (User.IsInRole(Roles.SuperAdmin) || User.IsInRole(Roles.PortalAdmin) || User.IsInRole(Roles.AccountAdmin))
                {
                    InspectionConfig InspectionConfig = new InspectionConfig();
                    string           UserID           = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier).Value;
                    var res = await InspectionConfig.UploadRoadsideInspection(model, UserID);

                    if (res.Contains("Successfully"))
                    {
                        Log.Info(Logfornet.LogMessage(model.CompanyId, "UploadInspectionXml", ErrorMessages.Success, ""));
                        c.Status = Status.Success.ToString();
                        c.Result = res;
                        return(c);
                    }
                    else
                    {
                        Log.Warn(Logfornet.LogMessage(model.CompanyId, "UploadInspectionXml", ErrorMessages.NoResults, ""));
                        c.Status = Status.Fail.ToString();
                        c.Result = res;
                        return(c);
                    }
                }
                else
                {
                    Log.Warn(Logfornet.LogMessage(model.CompanyId, "UploadInspectionXml", ErrorMessages.NoAccessDenied, ""));
                    c.Status = Status.NoAccess.ToString();
                    c.Result = "No Access";
                    return(c);
                }
            }
            catch (Exception ex)
            {
                Log.Error(Logfornet.LogMessage(model.CompanyId, "UploadInspectionXml", ex.Message, ex.StackTrace));
                c.Status     = ExceptionStatus.SqlException.ToString();
                c.StatusCode = (int)ExceptionStatus.SqlException;
                c.Result     = ex.InnerException;
                return(c);
            }
        }
        public async Task <StatusResult> GetInspectionByDate(InspectionDriver inspection)
        {
            StatusResult c = new StatusResult();

            try
            {
                if (!ModelState.IsValid)
                {
                    var errors = ModelState.Where(x => x.Value.Errors.Count > 0).Select(x => x.Value.Errors.Select(y => y.ErrorMessage)).ToList();
                    Log.Error(Logfornet.LogMessage(inspection.CompanyId, "GetInspectionByDate", errors.ToArray(), ""));

                    c.Status = Status.BadRequest.ToString();
                    c.Result = BadRequest();
                    return(c);
                }
                if (User.IsInRole(Roles.SuperAdmin) || User.IsInRole(Roles.PortalAdmin) || User.IsInRole(Roles.AccountAdmin))
                {
                    InspectionConfig InspectionConfig = new InspectionConfig();
                    var res = await InspectionConfig.GetInspectionByDate(inspection.CompanyId, inspection.InspectionDate);

                    if (res != null)
                    {
                        Log.Info(Logfornet.LogMessage(inspection.CompanyId, "GetInspectionByDate", ErrorMessages.Success, ""));
                        c.Status = Status.Success.ToString();
                        c.Result = res;
                        return(c);
                    }
                    else
                    {
                        Log.Warn(Logfornet.LogMessage(inspection.CompanyId, "GetInspectionByDate", ErrorMessages.NoResults, ""));
                        c.Status = Status.Fail.ToString();
                        c.Result = "Company is not active";
                        return(c);
                    }
                }
                else
                {
                    Log.Warn(Logfornet.LogMessage(inspection.CompanyId, "GetInspectionByDate", ErrorMessages.NoAccessDenied, ""));
                    c.Status = Status.NoAccess.ToString();
                    c.Result = "No Access";
                    return(c);
                }
            }
            catch (Exception ex)
            {
                Log.Error(Logfornet.LogMessage(inspection.CompanyId, "GetInspectionByDate", ex.Message, ex.StackTrace));
                c.Status     = ExceptionStatus.SqlException.ToString();
                c.StatusCode = (int)ExceptionStatus.SqlException;
                c.Result     = ex.InnerException;
                return(c);
            }
        }
        public StatusResult InsertInspectionEntry(ManualRSI Rsi)
        {
            StatusResult c = new StatusResult();

            try
            {
                if (!ModelState.IsValid)
                {
                    var errors = ModelState.Where(x => x.Value.Errors.Count > 0).Select(x => x.Value.Errors.Select(y => y.ErrorMessage)).ToList();
                    Log.Error(Logfornet.LogMessage(Rsi.CompanyID, "InsertInspectionEntry", errors.ToArray(), ""));

                    c.Status = Status.BadRequest.ToString();
                    c.Result = BadRequest();
                    return(c);
                }
                if (User.IsInRole(Roles.SuperAdmin) || User.IsInRole(Roles.PortalAdmin) || User.IsInRole(Roles.AccountAdmin))
                {
                    InspectionConfig InspectionConfig = new InspectionConfig();
                    Rsi.CreatedBy  = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier).Value;
                    Rsi.ModifiedBy = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier).Value;
                    Rsi.CreatedOn  = DateTime.Now;
                    Rsi.ModifiedOn = DateTime.Now;
                    var res = InspectionConfig.InsertInspectionEntry(Rsi);
                    Log.Info(Logfornet.LogMessage(Rsi.CompanyID, "InsertInspectionEntry", ErrorMessages.Success, ""));
                    c.Status = Status.Success.ToString();
                    c.Result = res;
                    return(c);
                }
                else
                {
                    Log.Warn(Logfornet.LogMessage(Rsi.CompanyID, "InsertInspectionEntry", ErrorMessages.NoAccessDenied, ""));
                    c.Status = Status.NoAccess.ToString();
                    c.Result = "No Access";
                    return(c);
                }
            }
            catch (Exception ex)
            {
                Log.Error(Logfornet.LogMessage(Rsi.CompanyID, "InsertInspectionEntry", ex.Message, ex.StackTrace));
                c.Status     = ExceptionStatus.SqlException.ToString();
                c.StatusCode = (int)ExceptionStatus.SqlException;
                c.Result     = ex.InnerException;
                return(c);
            }
        }
        public async Task <StatusResult> UploadInspectionDocumnets(List <BlobUploadModel> documentData)
        {
            StatusResult c         = new StatusResult();
            var          CompanyId = documentData.FirstOrDefault().CompanyId;

            try
            {
                if (!ModelState.IsValid)
                {
                    var errors = ModelState.Where(x => x.Value.Errors.Count > 0).Select(x => x.Value.Errors.Select(y => y.ErrorMessage)).ToList();
                    Log.Error(Logfornet.LogMessage(CompanyId, "UploadInspectionDocumnets", errors.ToArray(), ""));

                    c.Status = Status.BadRequest.ToString();
                    c.Result = BadRequest();
                    return(c);
                }
                if (User.IsInRole(Roles.SuperAdmin) || User.IsInRole(Roles.PortalAdmin) || User.IsInRole(Roles.AccountAdmin))
                {
                    InspectionConfig InspectionConfig = new InspectionConfig();
                    await InspectionConfig.UploadInspectionDocumnets(documentData, CompanyId);

                    Log.Info(Logfornet.LogMessage(CompanyId, "UploadInspectionDocumnets", ErrorMessages.Success, ""));
                    c.Status = Status.Success.ToString();
                    c.Result = "Inserted Successfully";
                    return(c);
                }
                else
                {
                    Log.Warn(Logfornet.LogMessage(CompanyId, "UploadInspectionDocumnets", ErrorMessages.NoAccessDenied, ""));
                    c.Status = Status.NoAccess.ToString();
                    c.Result = "No Access";
                    return(c);
                }
            }
            catch (Exception ex)
            {
                Log.Error(Logfornet.LogMessage(CompanyId, "UploadInspectionDocumnets", ex.Message, ex.StackTrace));
                c.Status     = ExceptionStatus.SqlException.ToString();
                c.StatusCode = (int)ExceptionStatus.SqlException;
                c.Result     = ex.InnerException;
                return(c);
            }
        }