Ejemplo n.º 1
0
        public async Task <IHttpActionResult> RegisterCompanyVehicle([FromUri] string compID, Vehicle_APTC model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    var modelErrors = new List <string>();
                    foreach (var modelState in ModelState.Values)
                    {
                        foreach (var modelError in modelState.Errors)
                        {
                            modelErrors.Add(modelError.ErrorMessage == "" ? modelError.Exception.Message : modelError.ErrorMessage);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                var vehicleKey = "vehicle_" + model.KeyID;

                if (await _bucket.ExistsAsync(vehicleKey))
                {
                    //return Content(HttpStatusCode.Conflict, new Error($"Vehicle '{model.KeyID}' already exists"));
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "170-Key ID already exists."), new JsonMediaTypeFormatter()));
                }
                // call third part api to check Vehicle is valid or not

                VehPlate vehPlate = new VehPlate();
                if (model.VehPlate != null)
                {
                    vehPlate.PlateNumber   = model.VehPlate.PlateNumber;
                    vehPlate.PlateCategory = model.VehPlate.PlateCategory;
                    vehPlate.PlateSource   = model.VehPlate.PlateSource;
                    vehPlate.PlateCode     = model.VehPlate.PlateCode;
                }

                Ownership ownership = new Ownership();
                if (model.Ownership != null)
                {
                    ownership.OwnershipType = model.Ownership.OwnershipType;
                    ownership.OwnerID       = model.Ownership.OwnerID;
                    ownership.OwnerName     = model.Ownership.OwnerName;
                    ownership.LeasorName    = model.Ownership.LeasorName;
                }

                List <AuditInfo> lstauditInfo = new List <AuditInfo>();
                AuditInfo        auditInfo    = new AuditInfo();
                auditInfo.Version        = "1";
                auditInfo.Status         = "true";
                auditInfo.LastChangeDate = DataConversion.ConvertYMDHMS(DateTime.Now.ToString());
                auditInfo.LastChangeBy   = model.KeyID;
                lstauditInfo.Add(auditInfo);

                CTResponse cTResponse = new CTResponse();
                if (model.CTResponse != null)
                {
                    cTResponse.CTStatus     = false;
                    cTResponse.CTResponseId = model.CTResponse.CTResponseId;
                    cTResponse.CTRemarks    = model.CTResponse.CTRemarks;
                }

                var vehicleDoc = new Document <Vehicle_APTC>()
                {
                    Id      = vehicleKey,
                    Content = new Vehicle_APTC
                    {
                        //Id = vehicleKey,
                        KeyID            = model.KeyID, // This is vehicle chassNumber.
                        DocType          = model.DocType,
                        EngineNum        = model.EngineNum,
                        NumSeats         = model.NumSeats,
                        TrafficNum       = model.TrafficNum,
                        FirstRegData     = model.FirstRegData,
                        YearManufacture  = model.YearManufacture,
                        Make             = model.Make,
                        Model            = model.Model,
                        Colour           = model.Colour,
                        VehType          = model.VehType,
                        FuelType         = model.FuelType,
                        TransType        = model.TransType,
                        IsActive         = true,
                        DisabledFriendly = model.DisabledFriendly,
                        VehPlate         = vehPlate,
                        AuditInfo        = lstauditInfo,
                        CTResponse       = cTResponse,
                        Remarks          = model.Remarks,
                        Ownership        = ownership,
                        VehValid         = false,// Third Part Verification
                        Status           = "PE"
                    }
                };
                var result = await _bucket.InsertAsync(vehicleDoc);

                if (!result.Success)
                {
                    return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                }

                /////////////////////////////////// add vehicle to company schema
                if (model.Ownership.OwnershipType == "IND")
                {
                    var individualDocument = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " as Company where meta().id= 'individual_" + model.Ownership.OwnerID + "'").ToList();
                    if (individualDocument.Count > 0)
                    {
                        Vehicles addnewVCehicleToCompany = new Vehicles();
                        addnewVCehicleToCompany.VehicleID = model.KeyID;
                        //add document code
                        string query            = @"UPDATE " + _bucket.Name + " SET vehicles = ARRAY_APPEND(vehicles, " + Newtonsoft.Json.JsonConvert.SerializeObject(addnewVCehicleToCompany).ToString() + ") where meta().id='individual_" + model.Ownership.OwnerID + "'";
                        var    resultIndividual = _bucket.Query <object>(query);
                        //return Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), docOutID + " has been added sucessfully"), new JsonMediaTypeFormatter());
                    }
                }
                else if (compID.Trim() != string.Empty)
                {
                    var companyDocument = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " as Company where meta().id= 'company_" + compID.Trim() + "'").ToList();
                    if (companyDocument.Count > 0)
                    {
                        Vehicles addnewVCehicleToCompany = new Vehicles();
                        addnewVCehicleToCompany.VehicleID = model.KeyID;
                        //add document code
                        string query            = @"UPDATE " + _bucket.Name + " SET vehicles = ARRAY_APPEND(vehicles, " + Newtonsoft.Json.JsonConvert.SerializeObject(addnewVCehicleToCompany).ToString() + ") where meta().id='company_" + compID.Trim() + "'";
                        var    resultIndividual = _bucket.Query <object>(query);
                        //return Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), docOutID + " has been added sucessfully"), new JsonMediaTypeFormatter());
                    }
                }
                /////////////////////////////////
                if (ConfigurationManager.AppSettings.Get("NotificationSettingFlag") == "1")
                {
                    #region Post Notification RoleCodeHODP
                    //////////////// Post Notification Code
                    try
                    {
                        PostNotificationParameters objPostNotificationParameters = new PostNotificationParameters();
                        objPostNotificationParameters.UserCode         = string.Empty;
                        objPostNotificationParameters.RoleCode         = AspectEnums.RoleCodeHODP;
                        objPostNotificationParameters.DeptCode         = AspectEnums.DeptCodeFROE;
                        objPostNotificationParameters.NotificationType = (int)AspectEnums.NotificationType.VehicleRegistration;
                        objPostNotificationParameters.KeyID            = model.KeyID;
                        objPostNotificationParameters.Value            = model.TrafficNum;
                        objPostNotificationParameters.Status           = AspectEnums.StatusPS;       //"PE";//model.Status.ToString();

                        resultPostNotification = sn.PostNotification(objPostNotificationParameters); //sn.PostNotification();
                    }
                    catch (Exception ex)
                    {
                        return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
                    }
                    #endregion
                    #region Post Notification RoleCodeBCKO
                    //////////////// Post Notification Code
                    try
                    {
                        PostNotificationParameters objPostNotificationParameters = new PostNotificationParameters();
                        objPostNotificationParameters.UserCode         = string.Empty;
                        objPostNotificationParameters.RoleCode         = AspectEnums.RoleCodeBCKO;
                        objPostNotificationParameters.DeptCode         = AspectEnums.DeptCodeFROE;
                        objPostNotificationParameters.NotificationType = (int)AspectEnums.NotificationType.VehicleRegistration;
                        objPostNotificationParameters.KeyID            = model.KeyID;
                        objPostNotificationParameters.Value            = model.TrafficNum;
                        objPostNotificationParameters.Status           = AspectEnums.StatusPS;       //"PE";//model.Status.ToString();

                        resultPostNotification = sn.PostNotification(objPostNotificationParameters); //sn.PostNotification();
                    }
                    catch (Exception ex)
                    {
                        return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
                    }
                    #endregion
                }
                return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.Add, result.Document.Id), new JsonMediaTypeFormatter()));
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }
Ejemplo n.º 2
0
        public IHttpActionResult CompanyAddFine([FromUri] string id, Fines model)
        {
            try
            {
                bool isThisFineExist = false;

                if (!ModelState.IsValid)
                {
                    var modelErrors = new List <string>();
                    foreach (var modelState in ModelState.Values)
                    {
                        foreach (var modelError in modelState.Errors)
                        {
                            modelErrors.Add(modelError.ErrorMessage);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                Fines addNewFine = new Fines();
                addNewFine.FineID   = model.FineID;
                addNewFine.Amount   = model.Amount;
                addNewFine.Status   = model.Status;
                addNewFine.Remark   = model.Remark;
                addNewFine.DateTime = model.DateTime;

                /////////////////// Validate Code for Fine already exist or not.
                var fineDoc = _bucket.Query <object>(@"SELECT fines From " + _bucket.Name + " where meta().id = '" + id + "'").ToList();

                foreach (var item1 in fineDoc)
                {
                    if (((Newtonsoft.Json.Linq.JToken)item1).Root["fines"] != null)
                    {
                        //fines-FineID
                        var finesIsExist = ((Newtonsoft.Json.Linq.JToken)item1).Root["fines"];

                        foreach (var itemTD in finesIsExist)
                        {
                            if (itemTD["fineID"].ToString() == model.FineID)
                            {
                                isThisFineExist = true;
                            }
                        }
                    }
                }
                ///////////////////////////////////
                if (isThisFineExist == true)
                {
                    // fine already exist.
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), model.FineID + " already exists"), new JsonMediaTypeFormatter()));
                }
                else
                {
                    // add fine code
                    string query  = @"UPDATE " + _bucket.Name + " SET fines = ARRAY_APPEND(fines, " + Newtonsoft.Json.JsonConvert.SerializeObject(addNewFine).ToString() + ") where meta().id='" + id + "'";
                    var    result = _bucket.Query <object>(query);
                    if (ConfigurationManager.AppSettings.Get("NotificationSettingFlag") == "1")
                    {
                        #region Post Notification RoleCodeHODP
                        //////////////// Post Notification Code
                        try
                        {
                            PostNotificationParameters objPostNotificationParameters = new PostNotificationParameters();
                            objPostNotificationParameters.UserCode         = string.Empty;
                            objPostNotificationParameters.RoleCode         = AspectEnums.RoleCodeHODP;
                            objPostNotificationParameters.DeptCode         = AspectEnums.DeptCodeFROE;
                            objPostNotificationParameters.NotificationType = (int)AspectEnums.NotificationType.FineRequest;
                            objPostNotificationParameters.KeyID            = model.FineID;//docOutDocument.KeyID;
                            objPostNotificationParameters.Value            = model.Amount;
                            objPostNotificationParameters.Status           = model.Status;
                            resultPostNotification = sn.PostNotification(objPostNotificationParameters);                    //sn.PostNotification();
                        }
                        catch (Exception ex)
                        {
                            return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
                        }
                        #endregion
                        #region Post Notification RoleCodeBCKO
                        //////////////// Post Notification Code
                        try
                        {
                            PostNotificationParameters objPostNotificationParameters = new PostNotificationParameters();
                            objPostNotificationParameters.UserCode         = string.Empty;
                            objPostNotificationParameters.RoleCode         = AspectEnums.RoleCodeBCKO;
                            objPostNotificationParameters.DeptCode         = AspectEnums.DeptCodeFROE;
                            objPostNotificationParameters.NotificationType = (int)AspectEnums.NotificationType.FineRequest;
                            objPostNotificationParameters.KeyID            = model.FineID;//docOutDocument.KeyID;
                            objPostNotificationParameters.Value            = model.Amount;
                            objPostNotificationParameters.Status           = model.Status;
                            resultPostNotification = sn.PostNotification(objPostNotificationParameters);                    //sn.PostNotification();
                        }
                        catch (Exception ex)
                        {
                            return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
                        }
                        #endregion
                    }
                    return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), model.FineID + " has been added sucessfully"), new JsonMediaTypeFormatter()));
                }
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }
Ejemplo n.º 3
0
        public async Task <IHttpActionResult> RegisterVehicle(Vehicle_APTC model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    var modelErrors = new List <string>();
                    foreach (var modelState in ModelState.Values)
                    {
                        foreach (var modelError in modelState.Errors)
                        {
                            modelErrors.Add(modelError.ErrorMessage == "" ? modelError.Exception.Message : modelError.ErrorMessage);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                var vehicleKey = "vehicle_" + model.KeyID;

                if (await _bucket.ExistsAsync(vehicleKey))
                {
                    //return Content(HttpStatusCode.Conflict, new Error($"Vehicle '{model.KeyID}' already exists"));
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "170-Key ID already exists."), new JsonMediaTypeFormatter()));
                }
                // call third part api to check Vehicle is valid or not

                VehPlate vehPlate = new VehPlate();
                if (model.VehPlate != null)
                {
                    vehPlate.PlateNumber   = model.VehPlate.PlateNumber;
                    vehPlate.PlateCategory = model.VehPlate.PlateCategory;
                    vehPlate.PlateSource   = model.VehPlate.PlateSource;
                    vehPlate.PlateCode     = model.VehPlate.PlateCode;
                }

                Ownership ownership = new Ownership();
                if (model.Ownership != null)
                {
                    ownership.OwnershipType = model.Ownership.OwnershipType;
                    ownership.OwnerID       = model.Ownership.OwnerID;
                    ownership.OwnerName     = model.Ownership.OwnerName;
                    ownership.LeasorName    = model.Ownership.LeasorName;
                }

                List <AuditInfo> lstauditInfo = new List <AuditInfo>();
                AuditInfo        auditInfo    = new AuditInfo();
                auditInfo.Version        = "1";
                auditInfo.Status         = "true";
                auditInfo.LastChangeDate = DataConversion.ConvertYMDHMS(DateTime.Now.ToString());
                auditInfo.LastChangeBy   = model.KeyID;
                lstauditInfo.Add(auditInfo);

                CTResponse cTResponse = new CTResponse();
                if (model.CTResponse != null)
                {
                    cTResponse.CTStatus     = false;
                    cTResponse.CTResponseId = model.CTResponse.CTResponseId;
                    cTResponse.CTRemarks    = model.CTResponse.CTRemarks;
                }

                var vehicleDoc = new Document <Vehicle_APTC>()
                {
                    Id      = vehicleKey,
                    Content = new Vehicle_APTC
                    {
                        //Id = vehicleKey,
                        KeyID            = model.KeyID, // This is vehicle chassNumber.
                        DocType          = model.DocType,
                        EngineNum        = model.EngineNum,
                        NumSeats         = model.NumSeats,
                        TrafficNum       = model.TrafficNum,
                        FirstRegData     = model.FirstRegData,
                        YearManufacture  = model.YearManufacture,
                        Make             = model.Make,
                        Model            = model.Model,
                        Colour           = model.Colour,
                        VehType          = model.VehType,
                        FuelType         = model.FuelType,
                        TransType        = model.TransType,
                        IsActive         = true,
                        DisabledFriendly = model.DisabledFriendly,
                        VehPlate         = vehPlate,
                        AuditInfo        = lstauditInfo,
                        CTResponse       = cTResponse,
                        Remarks          = model.Remarks,
                        Ownership        = ownership,
                        VehValid         = false,// Third Part Verification
                        Status           = "PE"
                    }
                };
                var result = await _bucket.InsertAsync(vehicleDoc);

                if (!result.Success)
                {
                    return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                }
                if (ConfigurationManager.AppSettings.Get("NotificationSettingFlag") == "1")
                {
                    #region Post Notification RoleCodeHODP
                    //////////////// Post Notification Code
                    try
                    {
                        PostNotificationParameters objPostNotificationParameters = new PostNotificationParameters();
                        objPostNotificationParameters.UserCode         = string.Empty;
                        objPostNotificationParameters.RoleCode         = AspectEnums.RoleCodeHODP;
                        objPostNotificationParameters.DeptCode         = AspectEnums.DeptCodeFROE;
                        objPostNotificationParameters.NotificationType = (int)AspectEnums.NotificationType.VehicleRegistration;
                        objPostNotificationParameters.KeyID            = model.KeyID;
                        objPostNotificationParameters.Value            = model.TrafficNum;
                        objPostNotificationParameters.Status           = AspectEnums.StatusPS;       //"PE";//model.Status.ToString();

                        resultPostNotification = sn.PostNotification(objPostNotificationParameters); //sn.PostNotification();
                    }
                    catch (Exception ex)
                    {
                        return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
                    }
                    #endregion
                    #region Post Notification RoleCodeBCKO
                    //////////////// Post Notification Code
                    try
                    {
                        PostNotificationParameters objPostNotificationParameters = new PostNotificationParameters();
                        objPostNotificationParameters.UserCode         = string.Empty;
                        objPostNotificationParameters.RoleCode         = AspectEnums.RoleCodeBCKO;
                        objPostNotificationParameters.DeptCode         = AspectEnums.DeptCodeFROE;
                        objPostNotificationParameters.NotificationType = (int)AspectEnums.NotificationType.VehicleRegistration;
                        objPostNotificationParameters.KeyID            = model.KeyID;
                        objPostNotificationParameters.Value            = model.TrafficNum;
                        objPostNotificationParameters.Status           = AspectEnums.StatusPS;       //"PE";//model.Status.ToString();

                        resultPostNotification = sn.PostNotification(objPostNotificationParameters); //sn.PostNotification();
                    }
                    catch (Exception ex)
                    {
                        return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
                    }
                    #endregion
                }
                return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.Add, result.Document.Id + " Notification Status :" + resultPostNotification), new JsonMediaTypeFormatter()));
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }
Ejemplo n.º 4
0
        public async Task <IHttpActionResult> Register(DocOut model)
        {
            try
            {
                // DocRef,docFile,DocImage,DocType,Lang

                if (!ModelState.IsValid)
                {
                    var modelErrors = new List <string>();
                    foreach (var modelState in ModelState.Values)
                    {
                        foreach (var modelError in modelState.Errors)
                        {
                            modelErrors.Add(modelError.ErrorMessage);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                bool   status        = false;
                string ValidFrom     = string.Empty;
                string ValidTo       = string.Empty;
                string DocClass      = string.Empty;
                var    maxDocVersion = 0;
                if (model.DocType.ToString().ToLower() == "profilephoto")
                {
                    status = true;
                    string updateQuery  = @"SELECT * From " + _bucket.Name + " as Users where meta().id ='" + model.IndivID + "'";
                    var    userDocument = _bucket.Query <object>(updateQuery).ToList();

                    if (userDocument.Count > 0)
                    {
                        List <int> maxVersion = new List <int>();

                        if (((Newtonsoft.Json.Linq.JToken)userDocument[0]).Root["Users"]["documents"] != null)
                        {
                            var auditInfoVersion = ((Newtonsoft.Json.Linq.JToken)userDocument[0]).Root["Users"]["documents"];
                            foreach (var itemTD in auditInfoVersion)
                            {
                                if (itemTD["version"] != null)
                                {
                                    maxVersion.Add(Convert.ToInt32(itemTD["version"]));
                                }
                            }
                        }
                        if (maxVersion.Count != 0)
                        {
                            maxDocVersion = 1 + maxVersion.Max();
                        }
                        else
                        {
                            maxDocVersion = 1;
                        }
                    }
                    if (maxDocVersion == 0)
                    {
                        maxDocVersion = 1;
                    }

                    DocClass  = "uploadprofilephoto";
                    ValidFrom = DataConversion.ConvertYMDHMS(DateTime.Now.ToString());
                    ValidTo   = DataConversion.ConvertYMDHMS(DateTime.Now.AddDays(Convert.ToInt16(ConfigurationManager.AppSettings.Get("ValidToProfilePhotoDays"))).ToString());
                }
                else
                {
                    status = true;
                    if (string.IsNullOrEmpty(model.ValidFrom))
                    {
                        return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "190-document valid from is required"), new JsonMediaTypeFormatter()));
                    }
                    if (string.IsNullOrEmpty(model.ValidTo))
                    {
                        return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "191-document valid to is required"), new JsonMediaTypeFormatter()));
                    }
                    ValidFrom = model.ValidFrom;
                    ValidTo   = model.ValidTo;
                }

                DocContent docContent = new DocContent();
                if (model.DocContent != null)
                {
                    docContent.Duration = model.DocContent.Duration;
                    docContent.Fees     = model.DocContent.Fees;
                }

                List <DocFile> lstDocFile = new List <DocFile>();

                if (model.DocFile != null)
                {
                    foreach (var df in model.DocFile)
                    {
                        DocFile docFile = new DocFile();
                        docFile.DocFormat = df.DocFormat;
                        docFile.DocImage  = df.DocImage;
                        lstDocFile.Add(docFile);
                    }
                }

                var docOutID       = "PERMIT_" + GenerateRandamNumber();
                var docOutDocument = new Document <DocOut>()
                {
                    Id      = docOutID,
                    Content = new DocOut
                    {
                        DocType     = model.DocType.ToLower(),
                        Version     = maxDocVersion,
                        DocRef      = model.DocRef,
                        Lang        = model.Lang,
                        Status      = status,
                        DateTime    = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                        DocClass    = model.DocClass,
                        ValidTo     = ValidTo,
                        ValidFrom   = ValidFrom,
                        RejReas     = "",
                        IndivID     = model.IndivID,
                        VehID       = model.VehID,
                        CompID      = model.CompID,
                        DocContent  = docContent,
                        DocFile     = lstDocFile,
                        DocAccepted = "PE"
                    },
                };

                var result = await _bucket.InsertAsync(docOutDocument);

                if (!result.Success)
                {
                    return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                }
                if (ConfigurationManager.AppSettings.Get("NotificationSettingFlag") == "1")
                {
                    #region Post Notification RoleCodeHODP
                    //////////////// Post Notification Code
                    try
                    {
                        PostNotificationParameters objPostNotificationParameters = new PostNotificationParameters();
                        objPostNotificationParameters.UserCode         = string.Empty;
                        objPostNotificationParameters.RoleCode         = AspectEnums.RoleCodeHODP;
                        objPostNotificationParameters.DeptCode         = AspectEnums.DeptCodeFROE;
                        objPostNotificationParameters.NotificationType = (int)AspectEnums.NotificationType.PermitRequest;
                        objPostNotificationParameters.KeyID            = docOutID;                   //docOutDocument.KeyID;
                        objPostNotificationParameters.Value            = model.DocRef;
                        objPostNotificationParameters.Status           = AspectEnums.StatusPS;       //"PE";//model.Status.ToString();
                        resultPostNotification = sn.PostNotification(objPostNotificationParameters); //sn.PostNotification();
                    }
                    catch (Exception ex)
                    {
                        return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
                    }
                    #endregion
                    #region Post Notification RoleCodeBCKO
                    //////////////// Post Notification Code
                    try
                    {
                        PostNotificationParameters objPostNotificationParameters = new PostNotificationParameters();
                        objPostNotificationParameters.UserCode         = string.Empty;
                        objPostNotificationParameters.RoleCode         = AspectEnums.RoleCodeBCKO;
                        objPostNotificationParameters.DeptCode         = AspectEnums.DeptCodeFROE;
                        objPostNotificationParameters.NotificationType = (int)AspectEnums.NotificationType.PermitRequest;
                        objPostNotificationParameters.KeyID            = docOutID;                   //docOutDocument.KeyID;
                        objPostNotificationParameters.Value            = model.DocRef;
                        objPostNotificationParameters.Status           = AspectEnums.StatusPS;       //"PE";//model.Status.ToString();
                        resultPostNotification = sn.PostNotification(objPostNotificationParameters); //sn.PostNotification();
                    }
                    catch (Exception ex)
                    {
                        return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
                    }
                    #endregion
                }

                /////////////////////////////////// add document in IndivID
                if (model.IndivID.Trim() != string.Empty)
                {
                    string query1             = @"SELECT * From " + _bucket.Name + " as Individual where meta().id= 'individual_" + model.IndivID.Trim() + "'";
                    var    individualDocument = _bucket.Query <object>(query1).ToList();

                    if (individualDocument.Count > 0)
                    {
                        Documents addnewDocument = new Documents();
                        addnewDocument.DocumentID = docOutID;
                        // add document code
                        string query            = @"UPDATE " + _bucket.Name + " SET documents = ARRAY_APPEND(documents, " + Newtonsoft.Json.JsonConvert.SerializeObject(addnewDocument).ToString() + ") where meta().id='individual_" + model.IndivID.Trim() + "'";
                        var    resultIndividual = _bucket.Query <object>(query);
                    }
                }
                ///////////////////////////////////

                /////////////////////////////////// add document in CompID
                if (model.CompID.Trim() != string.Empty)
                {
                    var companyDocument = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " as Company where meta().id= 'company_" + model.CompID.Trim() + "'").ToList();

                    if (companyDocument.Count > 0)
                    {
                        Documents addnewDocument = new Documents();
                        addnewDocument.DocumentID = docOutID;
                        // add document code
                        string query            = @"UPDATE " + _bucket.Name + " SET documents = ARRAY_APPEND(documents, " + Newtonsoft.Json.JsonConvert.SerializeObject(addnewDocument).ToString() + ") where meta().id='company_" + model.CompID.Trim() + "'";
                        var    resultIndividual = _bucket.Query <object>(query);
                    }
                }
                /////////////////////////////////

                return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.Add, result.Document.Id), new JsonMediaTypeFormatter()));
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }