public async Task <IHttpActionResult> Performance(Performance model)
        {
            try
            {
                List <DriverScore> driverScoreList = new List <DriverScore>();
                var         strPath     = @"G:\Projects\APTCAPI\CTAPI\Performance.json";
                string      localPath   = new Uri(strPath).LocalPath;
                Performance performance = new Performance();
                using (StreamReader read = new StreamReader(strPath))
                {
                    string json = read.ReadToEnd();
                    performance = JsonConvert.DeserializeObject <Performance>(json);
                }
                foreach (var score in performance.DriverScore)
                {
                    DriverScore driverScore = new DriverScore();
                    driverScore.DriverId     = score.DriverId;
                    driverScore.KmsTravelled = score.KmsTravelled;
                    driverScore.Braking      = score.Braking;
                    driverScore.Accel        = score.Accel;
                    driverScore.Corner       = score.Corner;
                    driverScore.Idle         = score.Idle;
                    driverScore.Speeding     = score.Speeding;
                    driverScore.AverageTotal = score.Speeding;
                    driverScoreList.Add(score);
                }

                var performanceDoc = new Document <Performance>()
                {
                    Id      = CreateUserKey(),
                    Content = new Performance
                    {
                        //Id = CreateUserKey(),
                        StartDateTime = performance.StartDateTime,
                        EndDateTime   = performance.EndDateTime,
                        Created_On    = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                        DriverScore   = driverScoreList
                    }
                };
                //IBucket _bucketperformance = ClusterHelper.GetBucket("DriverPerfoemance");
                var result = await _bucket.InsertAsync(performanceDoc);

                if (!result.Success)
                {
                    return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                }
                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()));
            }
        }
Example #2
0
        public async Task <IHttpActionResult> RegisterIncidentMessage(IncidentMessageModel 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);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                var userKey = "IncidentMessage_" + model.DriverID + "_" + DateTime.Now.Ticks.ToString();
                //if (await _bucket.ExistsAsync(userKey))
                //{
                //    //return Content(HttpStatusCode.Conflict, new Error($"Incident Message '{model.DriverID}' already exists"));
                //    return Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "167-Driver ID already exists"), new JsonMediaTypeFormatter());
                //}
                // call third part api to check Vehicle is valid or not
                var incidentMessageMessageDoc = new Document <IncidentMessageModel>()
                {
                    Id      = userKey,
                    Content = new IncidentMessageModel
                    {
                        DriverID = model.DriverID,
                        DateTime = model.DateTime,
                        Notes    = model.Notes,
                        // this is only UAT testing for check when ct created.
                        Created_On = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                        Created_By = "CarTrack"
                    }
                };
                var result = await _bucket.InsertAsync(incidentMessageMessageDoc);

                if (!result.Success)
                {
                    //return Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), EncryptDecrypt.Encryptword(result.Message)), new JsonMediaTypeFormatter());
                    return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                }
                //return Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(),MessageDescriptions.Add, EncryptDecrypt.Encryptword(result.Document.Id)), new JsonMediaTypeFormatter());
                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()));
            }
        }
Example #3
0
        public async Task <IHttpActionResult> Register(License 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);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                var licenseId = "License" + CreateUserKey(model.LicenseNumber);
                if (await _bucket.ExistsAsync(model.LicenseNumber))
                {
                    //return Content(HttpStatusCode.Conflict, new Error($"License:-'{model.LicenseNumber}' already exists"));
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "License already exists"), new JsonMediaTypeFormatter()));
                }
                //call api check driver varification  with EmiratiId if driver valid the driver valid will be true otherwise false
                var licenseDoc = new Document <License>()
                {
                    Id      = licenseId,
                    Content = new License
                    {
                        Id         = licenseId,
                        Action     = "Add",
                        IssueDate  = model.IssueDate,
                        ExpiryDate = model.ExpiryDate,
                        IsActive   = true,
                        IsDeleted  = true,
                        Created_On = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                    }
                };
                var result = await _bucket.InsertAsync(licenseDoc);

                if (!result.Success)
                {
                    return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                }
                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()));
            }
        }
Example #4
0
        public async Task <IHttpActionResult> RegisterAboutUs(AboutUs 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);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }


                var aboutUsMessageDoc = new Document <AboutUs>()
                {
                    Id      = "aboutUs_" + CreateUserKey(),
                    Content = new AboutUs
                    {
                        Contents   = model.Contents,
                        Created_On = DataConversion.ConvertYMDHMS(DateTime.Now.ToString())
                    }
                };
                var result = await _bucket.InsertAsync(aboutUsMessageDoc);

                if (!result.Success)
                {
                    return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                }
                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()));
            }
        }
Example #5
0
        public async Task <IHttpActionResult> UpdateVehicle(Vehicle_CT_Data 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);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                string query = @"select* from " + _bucket.Name + " as APTC_Vehicle where meta().id like 'Vehicle_%' and vin = '" + model.Registration + "'";

                var vehicleIsExistOrNot = _bucket.Query <object>(query).ToList();
                if (vehicleIsExistOrNot.Count == 0)
                {
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), model.Registration + " vehicle not exists."), new JsonMediaTypeFormatter()));
                }

                var userKey = "Vehicle_CT_Data_" + model.Registration; // This is vehicle chassis number. - unique number of vehicle discussed with mosaab  // in Our DB it`s vin

                if (await _bucket.ExistsAsync(userKey))
                {
                    //return Content(HttpStatusCode.Conflict, new Error($"Vehicle '{model.EngineNumber}' already exists"));
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "171-Registration number already exists."), new JsonMediaTypeFormatter()));
                }
                // call third part api to check Vehicle is valid or not
                var vehicle_CT_Data_Doc = new Document <Vehicle_CT_Data>()
                {
                    Id      = userKey,
                    Content = new Vehicle_CT_Data
                    {
                        Registration         = model.Registration,
                        Taxi_type            = model.Taxi_type,
                        Manufacturer         = model.Manufacturer,
                        Model                = model.Model,
                        Modelyear            = model.Modelyear,
                        Colour               = model.Colour,
                        Passenger_capacity   = model.Passenger_capacity,
                        Vehicle_status       = model.Vehicle_status,
                        Vehicle_enabled      = model.Vehicle_enabled,
                        Franchisee_user_name = model.Franchisee_user_name,
                        IsActive             = false,
                        Created_On           = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                        Created_By           = "CarTrack"//model.DriverID
                    }
                };
                var result = await _bucket.InsertAsync(vehicle_CT_Data_Doc);

                if (!result.Success)
                {
                    return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                }
                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()));
            }
        }
Example #6
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()));
            }
        }
Example #7
0
        public async Task <IHttpActionResult> UpdateVehicle(Vehicle_APTC model)
        {
            try
            {
                // Validate Model Code
                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()));
                }

                // Validate vehicle is exist or not
                var vehicleDocument = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " as vehicle where meta().id='vehicle_" + model.KeyID + "' and isActive=true").ToList();

                if (vehicleDocument.Count > 0)
                {
                    // edit company
                    #region fetch max audit version
                    MessageModel msg             = new MessageModel();
                    List <int>   maxVersion      = new List <int>();
                    var          maxAuditVersion = 0;

                    if (((Newtonsoft.Json.Linq.JToken)vehicleDocument[0]).Root["vehicle"]["auditInfo"] != null)
                    {
                        var auditInfoVersion = ((Newtonsoft.Json.Linq.JToken)vehicleDocument[0]).Root["vehicle"]["auditInfo"];
                        foreach (var itemTD in auditInfoVersion)
                        {
                            if (itemTD["version"] != null)
                            {
                                maxVersion.Add(Convert.ToInt32(itemTD["version"]));
                            }
                        }
                    }

                    if (maxVersion.Count != 0)
                    {
                        maxAuditVersion = maxVersion.Max() + 1;
                    }
                    else
                    {
                        maxAuditVersion = 0;
                    }
                    ///////////////////////////
                    AuditInfo auditInfo = new AuditInfo();
                    if (maxAuditVersion != null)
                    {
                        auditInfo.Version = maxAuditVersion.ToString();
                    }
                    else
                    {
                        auditInfo.Version = "0";
                    }

                    auditInfo.Status         = "true";
                    auditInfo.LastChangeDate = DataConversion.ConvertYMDHMS(DateTime.Now.ToString());
                    //auditInfo.LastChangeBy = model.Email;
                    #endregion
                    #region Updare Company
                    string updatequeryString = string.Empty;

                    updatequeryString  = @"update " + _bucket.Name + " set ";
                    updatequeryString += " docType ='" + model.DocType + "',";
                    updatequeryString += " engineNum ='" + model.EngineNum + "',";
                    updatequeryString += " numSeats ='" + model.NumSeats + "',";
                    updatequeryString += " trafficNum ='" + model.TrafficNum + "',";
                    updatequeryString += " firstRegData ='" + model.FirstRegData + "',";
                    updatequeryString += " yearManufacture ='" + model.YearManufacture + "',";
                    updatequeryString += " make ='" + model.Make + "',";
                    updatequeryString += " model ='" + model.Model + "',";
                    updatequeryString += " colour ='" + model.Colour + "',";
                    updatequeryString += " vehType ='" + model.VehType + "',";
                    updatequeryString += " fuelType ='" + model.FuelType + "',";
                    updatequeryString += " transType ='" + model.TransType + "',";
                    updatequeryString += " disabledFriendly ='" + model.DisabledFriendly + "',";
                    updatequeryString += " remarks ='" + model.Remarks + "',";
                    updatequeryString += " status ='PE',";

                    if (model.VehPlate != null)
                    {
                        updatequeryString += " vehPlate.plateNumber ='" + model.VehPlate.PlateNumber + "',";
                        updatequeryString += " vehPlate.plateCategory ='" + model.VehPlate.PlateCategory + "',";
                        updatequeryString += " vehPlate.plateSource ='" + model.VehPlate.PlateSource + "',";
                        updatequeryString += " vehPlate.plateCode ='" + model.VehPlate.PlateCode + "',";
                    }

                    if (model.Ownership != null)
                    {
                        updatequeryString += " ownership.ownershipType ='" + model.Ownership.OwnershipType + "',";
                        updatequeryString += " ownership.ownerID ='" + model.Ownership.OwnerID + "',";
                        updatequeryString += " ownership.ownerName ='" + model.Ownership.OwnerName + "',";
                        updatequeryString += " ownership.leasorName ='" + model.Ownership.LeasorName + "',";
                    }

                    updatequeryString += " auditInfo = ARRAY_APPEND( auditInfo, " + Newtonsoft.Json.JsonConvert.SerializeObject(auditInfo).ToString() + ")";
                    updatequeryString += " where meta().id='vehicle_" + model.KeyID + "'";

                    var result = _bucket.Query <object>(updatequeryString);
                    return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), model.KeyID + " has been updated sucessfully"), new JsonMediaTypeFormatter()));

                    #endregion
                }
                else
                {
                    return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.NotFound, "vehicle does not exist"), new JsonMediaTypeFormatter()));
                }
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }
Example #8
0
        public async Task <IHttpActionResult> UpdateEmployee(Individual model)
        {
            try
            {
                // Validate Model
                if (model.fullName == null)
                {
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "224-Full name is required"), new JsonMediaTypeFormatter()));
                }
                else
                {
                    if (string.IsNullOrEmpty(model.fullName.Ar_SA) && string.IsNullOrEmpty(model.fullName.En_US))
                    {
                        return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "224-Full name is required"), new JsonMediaTypeFormatter()));
                    }
                }
                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()));
                }
                string query        = @"SELECT * From " + _bucket.Name + " as Employee where meta().id like'individual_%' and  email= '" + model.Email + "'";
                var    userDocument = _bucket.Query <object>(query).ToList();
                if (userDocument.Count > 0)
                {
                    //return Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "EmiratiID already exists"), new JsonMediaTypeFormatter());
                    ///////////////////////// edit API Code 27-Aug-2018
                    #region fetch max audit version
                    MessageModel msg             = new MessageModel();
                    List <int>   maxVersion      = new List <int>();
                    var          maxAuditVersion = 0;

                    if (((Newtonsoft.Json.Linq.JToken)userDocument[0]).Root["Employee"]["auditInfo"] != null)
                    {
                        var auditInfoVersion = ((Newtonsoft.Json.Linq.JToken)userDocument[0]).Root["Employee"]["auditInfo"];
                        foreach (var itemTD in auditInfoVersion)
                        {
                            if (itemTD["version"] != null)
                            {
                                maxVersion.Add(Convert.ToInt32(itemTD["version"]));
                            }
                        }
                    }

                    if (maxVersion.Count != 0)
                    {
                        maxAuditVersion = 1 + maxVersion.Max();
                    }
                    else
                    {
                        maxAuditVersion = 0;
                    }
                    ///////////////////////////
                    AuditInfo auditInfo = new AuditInfo();
                    if (maxAuditVersion != null)
                    {
                        auditInfo.Version = maxAuditVersion.ToString();
                    }
                    else
                    {
                        auditInfo.Version = "0";
                    }
                    auditInfo.Status         = "true";
                    auditInfo.LastChangeDate = DataConversion.ConvertYMDHMS(DateTime.Now.ToString());
                    auditInfo.LastChangeBy   = model.Email;
                    #endregion
                    #region Updare Employee
                    string updatequeryString = string.Empty;

                    updatequeryString  = @"update " + _bucket.Name + " set ";
                    updatequeryString += " dob ='" + model.DOB + "',";
                    updatequeryString += " gender ='" + model.Gender + "',";
                    updatequeryString += " profilePhoto.docFormat ='" + model.ProfilePhoto.DocFormat + "',";
                    updatequeryString += " profilePhoto.photo ='" + model.ProfilePhoto.Photo + "',";
                    updatequeryString += " profilePhoto.validFrom ='" + DataConversion.ConvertYMDHMS(DateTime.Now.ToString()) + "',";
                    updatequeryString += " profilePhoto.validTo ='" + DataConversion.ConvertYMDHMS(DateTime.Now.AddDays(Convert.ToInt16(ConfigurationManager.AppSettings.Get("ValidToProfilePhotoDays"))).ToString()) + "',";
                    updatequeryString += " language ='" + model.Language + "',";
                    updatequeryString += " maritalStatus ='" + model.MaritalStatus + "',";
                    /////// full Name
                    if (model.fullName != null)
                    {
                        updatequeryString += " fullName.en_US ='" + model.fullName.En_US + "',";
                        updatequeryString += " fullName.ar_SA ='" + model.fullName.Ar_SA + "',";
                    }
                    /////// Tel Num
                    if (model.MobNum != null)
                    {
                        updatequeryString += " mobNum.countryCodeM ='" + model.MobNum.CountryCodeM + "',";
                        updatequeryString += " mobNum.numM ='" + model.MobNum.NumM + "',";
                        updatequeryString += " mobNum.areaM ='" + model.MobNum.AreaM + "',";
                    }
                    /////// Tel Num
                    if (model.TelNum != null)
                    {
                        updatequeryString += " telNum.countryCodeT ='" + model.TelNum.CountryCodeT + "',";
                        updatequeryString += " telNum.numT ='" + model.TelNum.NumT + "',";
                        updatequeryString += " telNum.areaT ='" + model.TelNum.AreaT + "',";
                    }
                    ////// Address
                    if (model.Address != null)
                    {
                        updatequeryString += " address.city ='" + model.Address.City + "',";
                        updatequeryString += " address.state ='" + model.Address.State + "',";
                        updatequeryString += " address.area ='" + model.Address.Area + "',";
                        updatequeryString += " address.street ='" + model.Address.Street + "',";
                        updatequeryString += " address.bldgNum ='" + model.Address.BldgNum + "',";
                        updatequeryString += " address.flatNum ='" + model.Address.FlatNum + "',";
                    }
                    //// Status
                    if (model.Status != null)
                    {
                        updatequeryString += " status.statusID ='" + model.Status.StatusID + "',";
                        updatequeryString += " status.dateTime ='" + DataConversion.ConvertYMDHMS(DateTime.Now.ToString()) + "',";
                    }
                    updatequeryString += " email ='" + model.Email + "',";
                    updatequeryString += " notes ='" + model.Notes + "',";
                    updatequeryString += " religion ='" + model.Religion + "',";
                    updatequeryString += "roles=[],";
                    updatequeryString += "auditInfo = ARRAY_APPEND( auditInfo, " + Newtonsoft.Json.JsonConvert.SerializeObject(auditInfo).ToString() + ")";
                    updatequeryString += " where keyID = '" + model.KeyID + "'";
                    var result = _bucket.Query <object>(updatequeryString);
                    query = @"select roles[0] from " + _bucket.Name + "  where keyID = '" + model.KeyID + "'";

                    foreach (var item in model.Roles)
                    {
                        var queryUpdateOtherRoles = @"update `APTCCRM` SET roles= ARRAY_APPEND( roles, " + Newtonsoft.Json.JsonConvert.SerializeObject(item).ToString() + " )  where keyID = '" + model.KeyID + "'";
                        _bucket.Query <object>(queryUpdateOtherRoles);
                    }

                    return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.Update, model.Email), new JsonMediaTypeFormatter()));

                    #endregion
                }
                else
                {
                    return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.NotFound, ""), new JsonMediaTypeFormatter()));
                }
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }
Example #9
0
        public async Task <IHttpActionResult> Register(DriverModel model)
        {
            //Modified by Arvind on 23-07-2018 as per joe email
            if (string.IsNullOrEmpty(model.NameEN) && string.IsNullOrEmpty(model.NameAR))
            {
                return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "110-Either aribac name or english name is required"), new JsonMediaTypeFormatter()));
            }
            string destinationPath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings.Get("FilePath"));

            destinationPath = destinationPath + "/driver";
            string root     = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings.Get("TempFilePath"));
            var    tempPath = Path.GetTempPath();

            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);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                var driverId = "Driver_" + model.EmiratiId;
                var driverDocumentEmirati = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " where meta().id= 'Driver_" + model.EmiratiId + "'").ToList();

                var driverDocumentEmail = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " where emailAddress= '" + model.EmailAddress + "'").ToList();

                if (Convert.ToDateTime(model.LicenseExpiryDate) <= Convert.ToDateTime(model.LicenseIssueDate))
                {
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "164-license expiry date should be greater than license issue date"), new JsonMediaTypeFormatter()));
                }
                if (driverDocumentEmirati.Count > 0)
                {
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "165-Emirati Id already exists"), new JsonMediaTypeFormatter()));
                }
                if (driverDocumentEmail.Count > 0)
                {
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "105-The e-mail already exists"), new JsonMediaTypeFormatter()));
                }

                bool isDriverValid = true;

                string password  = Guid.NewGuid().ToString("d").Substring(1, 4);
                var    driverDoc = new Document <DriverModel>()
                {
                    Id      = driverId,
                    Content = new DriverModel
                    {
                        EmiratiId              = model.EmiratiId,
                        NameEN                 = model.NameEN,
                        NameAR                 = model.NameAR,
                        Action                 = "Add",
                        DriverValid            = isDriverValid.ToString(),
                        EmailAddress           = model.EmailAddress,
                        LicenseNumber          = model.LicenseNumber,
                        PassportNumber         = model.PassportNumber,
                        MobileNumber           = model.MobileNumber,
                        PermitNumber           = model.PermitNumber,
                        Photo                  = model.Photo,
                        VehicleType            = model.VehicleType,
                        LicenseIssueDate       = DataConversion.ConvertYMDHMS(model.LicenseIssueDate),
                        LicenseExpiryDate      = DataConversion.ConvertYMDHMS(model.LicenseExpiryDate),
                        Password               = password,
                        IsActive               = true,
                        IsDeleted              = false,
                        Created_On             = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                        Created_By             = model.Created_By,//model.EmailAddress,
                        Franchise              = model.Franchise,
                        HotelPickup            = model.HotelPickup,
                        CarTrackDriverResponse = new CarTrackDriverResponse
                        {
                            CTStatus      = "No",
                            CTDescription = string.Empty
                        }
                    }
                };
                var result = await _bucket.InsertAsync(driverDoc);

                if (!result.Success)
                {
                    return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                }
                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()));
            }
        }
Example #10
0
        public async Task <IHttpActionResult> RegisterPassengerMessage(PassengerMessageModel model)
        {
            //Modified by Vishal on 24-07-2018 as per joe email
            if (string.IsNullOrEmpty(model.NameEN) && string.IsNullOrEmpty(model.NameAR))
            {
                return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "110-Either arbic name or english name is required"), new JsonMediaTypeFormatter()));
            }
            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);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                var userKey = "PassengerMessage_" + model.PassengerID;
                if (await _bucket.ExistsAsync(userKey))
                {
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "105-Passenger ID already exists."), new JsonMediaTypeFormatter()));
                }
                List <SawariBookingModel> sawariBookingModels = new List <SawariBookingModel>();

                // call third part api to check Vehicle is valid or not
                var passengerMessageDoc = new Document <PassengerMessageModel>()
                {
                    Id      = userKey,
                    Content = new PassengerMessageModel
                    {
                        //Action = "ADD",
                        PassengerID  = model.PassengerID,
                        NameEN       = model.NameEN,
                        NameAR       = model.NameAR,
                        MobileNumber = model.MobileNumber,
                        EmailAddress = model.EmailAddress,
                        Booking      = sawariBookingModels,
                        // this is only UAT testing for check when ct created.
                        Created_On = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                        Created_By = "CarTrack"
                    }
                };

                var result = await _bucket.InsertAsync(passengerMessageDoc);

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

                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()));
            }
        }
Example #11
0
        public async Task <IHttpActionResult> InsertUser(Login model)
        {
            //string ppp = EncryptDecryptString.DecodePasswordToFrom64("MTIzNDU2OTk5");
            try
            {
                if (string.IsNullOrEmpty(model.Name))
                {
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "224-name is required"), new JsonMediaTypeFormatter()));
                }
                if (string.IsNullOrEmpty(model.Email))
                {
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "112-email is required"), new JsonMediaTypeFormatter()));
                }
                if (string.IsNullOrEmpty(model.Password))
                {
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "158-Password is required"), new JsonMediaTypeFormatter()));
                }
                var userDocumentEmail = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " where email= '" + model.Email + "'  and isActive=true and isActive=true and meta().id like'%login_%'").ToList();
                if (userDocumentEmail.Count > 0)
                {
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "105-The e-mail already exists"), new JsonMediaTypeFormatter()));
                }
                if (model.MobNum == null)
                {
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "199-mobnum is required"), new JsonMediaTypeFormatter()));
                }
                else
                {
                    if (string.IsNullOrEmpty(model.MobNum.AreaM))
                    {
                        return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "200-areaM is required"), new JsonMediaTypeFormatter()));
                    }
                    if (string.IsNullOrEmpty(model.MobNum.NumM))
                    {
                        return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "201-NumM is required"), new JsonMediaTypeFormatter()));
                    }
                    if (string.IsNullOrEmpty(model.MobNum.CountryCodeM))
                    {
                        return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "202-CountryCodeM is required"), new JsonMediaTypeFormatter()));
                    }
                }
                if (model.Roles == null)
                {
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "203-roles is required"), new JsonMediaTypeFormatter()));
                }
                else
                {
                    if (string.IsNullOrEmpty(model.Roles.PrimaryRole))
                    {
                        return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "204-PrimaryRole is required"), new JsonMediaTypeFormatter()));
                    }
                    if (model.Roles.OtherRoles == null)
                    {
                        return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "205-OtherRoles is required"), new JsonMediaTypeFormatter()));
                    }
                }

                var userDocumentPhone = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " where " + _bucket.Name + ".mobNum.num= '" + model.MobNum.NumM + "' and isActive=true and meta().id like'%login_%'").ToList();

                if (userDocumentPhone.Count > 0)
                {
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "Mobile number already exists"), new JsonMediaTypeFormatter()));
                }

                try
                {
                    List <PrevPassword> prevPassword = new List <PrevPassword>();
                    var    loginDocumentId           = "login_" + Guid.NewGuid();
                    MobNum mobNum = new MobNum();
                    mobNum.CountryCodeM = model.MobNum.CountryCodeM;
                    mobNum.NumM         = model.MobNum.NumM;
                    mobNum.AreaM        = model.MobNum.AreaM;
                    TelNum telNum = new TelNum();
                    if (model.TelNum != null)
                    {
                        telNum.CountryCodeT = model.TelNum.CountryCodeT;
                        telNum.NumT         = model.TelNum.NumT;
                        telNum.AreaT        = model.TelNum.AreaT;
                    }
                    var loginDocument = new Document <Login>()
                    {
                        Id      = loginDocumentId,
                        Content = new Login
                        {
                            Lang        = model.Lang,
                            DocType     = "user",
                            Name        = model.Name,
                            PassSetDate = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                            Password    = EncryptDecryptString.EncodePasswordToBase64(model.Password),
                            Email       = model.Email,
                            EmirateId   = model.EmirateId,
                            //Mobile = model.Mobile,
                            MobNum     = mobNum,
                            TelNum     = telNum,
                            Department = model.Department,
                            Roles      = model.Roles,
                            PrevPass   = prevPassword,
                            IsActive   = true,
                            Created_By = model.Email,
                            UserPhoto  = model.UserPhoto,
                            Created_On = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                        },
                    };
                    var result = _bucket.Insert(loginDocument);
                    if (!result.Success)
                    {
                        //_bucket.Remove(loginResult.Document.Content.Email);
                        return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                    }
                    return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.Add, result.Document.Content.Email), new JsonMediaTypeFormatter()));
                }
                catch (Exception ex)
                {
                    //_bucket.Remove(result.Document.Id);
                    return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.Message), new JsonMediaTypeFormatter()));
                }

                //}
                // return Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.Add, result..Id), new JsonMediaTypeFormatter());
                //}
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }
Example #12
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()));
            }
        }
Example #13
0
        public async Task <IHttpActionResult> Journey(Journey 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);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                var pickupDate  = Convert.ToDateTime(DataConversion.ConvertYMDHMS(model.PickupDateTime));
                var currentDate = Convert.ToDateTime(DataConversion.ConvertYMDHMS(DateTime.Now.ToString()));

                if (pickupDate > currentDate)
                {
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "168-Date cannot be in the future"), new JsonMediaTypeFormatter()));
                }

                var journeyDoc = new Document <Journey>()
                {
                    Id      = CreateUserKey(),
                    Content = new Journey
                    {
                        BookingId          = CreateUserKey(),   //Booking ID in CT
                        PassengerID        = model.PassengerID, //Either a reference to a registered passenger or else “Anonymous” denoting a non-registered passenger
                        DestinationAddress = model.DestinationAddress,
                        DestinationLat     = model.DestinationLat,
                        DestinationLon     = model.DestinationLon,
                        DriverID           = model.DriverID,
                        NumPassengers      = model.NumPassengers,
                        PickupAddress      = model.PickupAddress,
                        PickupDateTime     = model.PickupDateTime,
                        PickupLat          = model.PickupLat,
                        PickupLon          = model.PickupLon,
                        VehicleID          = model.VehicleID,
                        TaxiType           = model.TaxiType,
                        Waypoints          = model.Waypoints,
                        Created_On         = DataConversion.ConvertYMDHMS(DateTime.Now.ToString())
                    }
                };

                //IBucket _bucketperformance = ClusterHelper.GetBucket("DriverTrip");

                var result = await _bucket.InsertAsync(journeyDoc);

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

                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()));
            }
        }
        public IHttpActionResult GetDriver(string id)
        {
            string keyValue = string.Empty;
            //var userDocument1 = _bucket.Query<object>(@"SELECT keyID ID,name.en_US NameEN,name.ar_SA NameAR,email EmailAddress From " + _bucket.Name + " as Driver where meta().id= '" + id + "'").ToList();

            var userDocument1 = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " as Driver where meta().id= '" + id + "'").ToList();

            //var dict = JsonConvert.SerializeObject(userDocument1.Rows);
            //var dict1 = JsonConvert.DeserializeObject<object>(dict);
            //var jsonObj = JObject.Parse(dict);
            //var values = (JArray)jsonObj["value"];

            string Action = string.Empty;

            Action = "ADD";
            string Password = string.Empty;
            //Password = "******";
            string Username = string.Empty;
            //Username = "******";
            var ID                = string.Empty;
            var NameEN            = string.Empty;
            var NameAR            = string.Empty;
            var MobileNumber      = string.Empty;
            var EmailAddress      = string.Empty;
            var DriverValid       = string.Empty;
            var Franchise         = string.Empty;
            var vehiclesTypeValue = string.Empty;
            var LicenseNumber     = string.Empty;
            var PermitNumber      = string.Empty;
            var PassportNumber    = string.Empty;
            var Photo             = string.Empty;

            foreach (var item1 in userDocument1)
            {
                // keyID - Done
                if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["keyID"] != null)
                {
                    ID = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["keyID"].ToString().Split('_')[1];
                }

                var objLoginDetails = _loginbucket.Query <object>(@"SELECT * From " + _loginbucket.Name + " as Login where meta().id= 'Login_" + ID + "'").ToList();

                foreach (var loginItem in objLoginDetails)
                {
                    if (((Newtonsoft.Json.Linq.JToken)loginItem).Root["Login"]["userId"] != null)
                    {
                        Username = ((Newtonsoft.Json.Linq.JToken)loginItem).Root["Login"]["userId"].ToString();
                    }
                    if (((Newtonsoft.Json.Linq.JToken)loginItem).Root["Login"]["password"] != null)
                    {
                        Password = ((Newtonsoft.Json.Linq.JToken)loginItem).Root["Login"]["password"].ToString();
                    }
                }

                // = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["keyID"];
                //var  = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["keyID"];

                //name-en_US- Done
                if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["name"]["en_US"] != null)
                {
                    NameEN = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["name"]["en_US"].ToString();
                }

                //name-ar_SA - Done
                if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["name"]["ar_SA"] != null)
                {
                    NameAR = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["name"]["ar_SA"].ToString();
                }

                //photo - Done
                if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["profilePhoto"] != null)
                {
                    Photo = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["profilePhoto"].ToString();
                }

                //mobNum-num - Done
                if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["mobNum"]["numM"] != null)
                {
                    MobileNumber = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["mobNum"]["numM"].ToString();
                }
                // email - Done
                if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["email"] != null)
                {
                    EmailAddress = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["email"].ToString();
                }

                //auditInfo-status - Done
                if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["auditInfo"]["status"] != null)
                {
                    DriverValid = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["auditInfo"]["status"].ToString();
                }

                ////////////////////////////////////////////////

                //roles-link-linkID
                var FranchiseType = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["roles"];
                foreach (var item in FranchiseType)
                {
                    if (item["roleID"].ToString().Contains("CompanyOwner"))
                    {
                        if (item["link"]["name"] != null)
                        {
                            Franchise = item["link"]["name"].ToString();
                        }
                    }
                }

                //vehicles-vehType
                var vehiclesType = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["vehicles"];
                foreach (var item in vehiclesType)
                {
                    if (item["status"].ToString().Contains("true"))
                    {
                        if (item["vehType"] != null)
                        {
                            vehiclesTypeValue = item["vehType"].ToString();
                        }
                    }
                }

                // Fetch Data from document Type
                var docType = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["documents"];

                foreach (var item in docType)
                {
                    if (item["documentID"].ToString().Contains("license"))
                    {
                        //documents-type ("documentID": "license")
                        if (item["number"] != null)
                        {
                            LicenseNumber = item["number"].ToString();
                        }
                    }
                    if (item["documentID"].ToString().Contains("permit"))
                    {
                        //documents-type ("documentID": "permit")
                        if (item["number"] != null)
                        {
                            PermitNumber = item["number"].ToString();
                        }
                    }
                    if (item["documentID"].ToString().Contains("passport"))
                    {
                        //documents-type ("documentID": "passport")
                        if (item["number"] != null)
                        {
                            PassportNumber = item["number"].ToString();
                        }
                    }
                }
            }

            var driverList = new List <string>();
            var dData      = new DriverModel
            {
                ID                     = "Driver_" + ID,
                NameEN                 = NameEN,
                NameAR                 = NameAR,
                Action                 = Action,
                DriverValid            = DriverValid,
                EmailAddress           = EmailAddress,
                LicenseNumber          = LicenseNumber,
                PassportNumber         = PassportNumber,
                MobileNumber           = MobileNumber,
                PermitNumber           = PermitNumber,
                Photo                  = Photo,
                VehicleType            = vehiclesTypeValue,
                Username               = Username,
                Password               = Password,
                Franchise              = Franchise,
                IsActive               = true,
                Created_On             = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                Created_By             = EmailAddress,
                CarTrackDriverResponse = new CarTrackDriverResponse
                {
                    CTStatus      = "No",
                    CTDescription = string.Empty
                }
            };

            return(Content(HttpStatusCode.OK, dData));
        }
        public IHttpActionResult GetAllDriver()
        {
            #region private values
            string keyValue = string.Empty;
            string Action   = string.Empty;
            Action = "ADD";
            string Password = string.Empty;
            //Password = "******";
            string Username = string.Empty;
            //Username = "******";
            var  ID                = string.Empty;
            var  NameEN            = string.Empty;
            var  NameAR            = string.Empty;
            var  MobileNumber      = string.Empty;
            var  EmailAddress      = string.Empty;
            var  DriverValid       = string.Empty;
            var  Franchise         = string.Empty;
            var  vehiclesTypeValue = string.Empty;
            var  LicenseNumber     = string.Empty;
            var  PermitNumber      = string.Empty;
            var  PassportNumber    = string.Empty;
            var  Photo             = string.Empty;
            var  driverList        = new List <DriverModel>();
            bool isThisTaxiDriver;
            #endregion

            var userDocument1 = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " as Driver where meta().id LIKE 'individual_%'").ToList();
            foreach (var item1 in userDocument1)
            {
                isThisTaxiDriver = false;
                if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["roles"] != null)
                {
                    //roles-roleID
                    var taxiDriverType = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["roles"];
                    foreach (var itemTD in taxiDriverType)
                    {
                        if (itemTD["roleID"].ToString().ToLower().Contains("taxidriver"))
                        {
                            isThisTaxiDriver = true;
                        }
                    }
                }

                if (isThisTaxiDriver == true)
                {
                    // keyID - Done
                    if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["keyID"] != null)
                    {
                        ID = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["keyID"].ToString().Split('_')[1];
                    }

                    // email - Done
                    if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["email"] != null)
                    {
                        EmailAddress = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["email"].ToString();
                    }

                    var objLoginDetails = _loginbucket.Query <object>(@"SELECT * From " + _loginbucket.Name + " as Login where meta().id= 'Login_" + EmailAddress + "'").ToList();

                    foreach (var loginItem in objLoginDetails)
                    {
                        if (((Newtonsoft.Json.Linq.JToken)loginItem).Root["Login"]["userId"] != null)
                        {
                            Username = ((Newtonsoft.Json.Linq.JToken)loginItem).Root["Login"]["userId"].ToString();
                        }
                        if (((Newtonsoft.Json.Linq.JToken)loginItem).Root["Login"]["password"] != null)
                        {
                            Password = ((Newtonsoft.Json.Linq.JToken)loginItem).Root["Login"]["password"].ToString();
                        }
                    }

                    // = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["keyID"];
                    //var  = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["keyID"];

                    //name-en_US- Done
                    if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["name"]["en_US"] != null)
                    {
                        NameEN = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["name"]["en_US"].ToString();
                    }

                    //name-ar_SA - Done
                    if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["name"]["ar_SA"] != null)
                    {
                        NameAR = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["name"]["ar_SA"].ToString();
                    }

                    //mobNum-num - Done
                    if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["mobNum"]["num"] != null)
                    {
                        MobileNumber = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["mobNum"]["num"].ToString();
                    }


                    //auditInfo-status - Done
                    if (((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["auditInfo"]["status"] != null)
                    {
                        DriverValid = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["auditInfo"]["status"].ToString();
                    }

                    ////////////////////////////////////////////////

                    //roles-link-linkID
                    var FranchiseType = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["roles"];

                    foreach (var item in FranchiseType)
                    {
                        if (item["roleID"].ToString().ToLower().Contains("companyowner"))
                        {
                            if (item["link"]["name"] != null)
                            {
                                Franchise = item["link"]["name"].ToString();
                            }
                        }
                    }

                    //vehicles-vehType
                    var vehiclesType = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["vehicles"];
                    foreach (var item in vehiclesType)
                    {
                        if (item["status"].ToString().Contains("true"))
                        {
                            if (item["vehType"] != null)
                            {
                                vehiclesTypeValue = item["vehType"].ToString();
                            }
                        }
                    }

                    // Fetch Data from document Type
                    var docType = ((Newtonsoft.Json.Linq.JToken)item1).Root["Driver"]["documents"];

                    foreach (var item in docType)
                    {
                        if (item["documentID"].ToString().Contains("license"))
                        {
                            //documents-type ("documentID": "license")
                            if (item["type"] != null)
                            {
                                LicenseNumber = item["type"].ToString();
                            }
                        }
                        if (item["documentID"].ToString().Contains("permit"))
                        {
                            //documents-type ("documentID": "permit")
                            if (item["type"] != null)
                            {
                                PermitNumber = item["type"].ToString();
                            }
                        }
                        if (item["documentID"].ToString().Contains("passport"))
                        {
                            //documents-type ("documentID": "passport")
                            if (item["type"] != null)
                            {
                                PassportNumber = item["type"].ToString();
                            }
                        }

                        //if (item["documentID"].ToString().Contains("photo"))
                        //{
                        //    //documents-type ("documentID": "photo")
                        //    if (item["type"] != null)
                        //    {
                        //        Photo = item["type"].ToString();
                        //    }
                        //}
                    }

                    var dData = new DriverModel
                    {
                        ID             = "Driver_" + ID,
                        NameEN         = NameEN,
                        NameAR         = NameAR,
                        Action         = Action,
                        DriverValid    = DriverValid,
                        EmailAddress   = EmailAddress,
                        LicenseNumber  = LicenseNumber,
                        PassportNumber = PassportNumber,
                        MobileNumber   = MobileNumber,
                        PermitNumber   = PermitNumber,
                        Photo          = Photo,
                        VehicleType    = vehiclesTypeValue,
                        Username       = Username,
                        Password       = Password,
                        Franchise      = Franchise,
                        IsActive       = true,

                        Created_On             = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                        Created_By             = EmailAddress,
                        CarTrackDriverResponse = new CarTrackDriverResponse
                        {
                            CTStatus      = "No",
                            CTDescription = string.Empty
                        }
                    };

                    driverList.Add(dData);
                    ////////////// End if
                }
            }
            return(Content(HttpStatusCode.OK, driverList));
        }
Example #16
0
        public async Task <IHttpActionResult> Register(List <DocIn> lstDoc)
        {
            try
            {
                // DocRef,docFile,DocImage,DocType,Lang
                foreach (var model in lstDoc)
                {
                    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  = model.DocClass;
                        ValidFrom = DataConversion.ConvertYMDHMS(DateTime.Now.ToString());
                        ValidTo   = DataConversion.ConvertYMDHMS(DateTime.Now.AddDays(Convert.ToInt16(ConfigurationManager.AppSettings.Get("ValidToProfilePhotoDays"))).ToString());
                    }
                    else
                    {
                        status = false;
                        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 docID         = "DOCIN_" + GenerateRandamNumber();
                    var docInDocument = new Document <DocIn>()
                    {
                        Id      = docID,
                        Content = new DocIn
                        {
                            DocType    = model.DocType.ToLower(),
                            Version    = maxDocVersion,
                            DocRef     = model.DocRef,
                            Lang       = model.Lang,
                            Status     = false,
                            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,
                            Id         = model.Id,
                            IssueDate  = model.IssueDate,
                            ExpiryDate = model.ExpiryDate,
                            Place      = model.Place,
                            Categories = model.Categories
                        },
                    };
                    var result = await _bucket.InsertAsync(docInDocument);

                    //if (!result.Success)
                    //{
                    //    return Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter());
                    //}
                    /////////////////////////////////// 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 = docID;
                            // 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 != null)
                    {
                        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 = docID;
                                // 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(), "Documents uploaded sucessfully")));
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }
Example #17
0
        public async Task <IHttpActionResult> UpdateAboutUs([FromUri] string id, AboutUs 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);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                // add document code
                string query  = @"UPDATE " + _bucket.Name + " SET contents = '" + model.Contents + "',modify_On= '" + DataConversion.ConvertYMDHMS(DateTime.Now.ToString()) + "' where meta().id='" + id + "'";
                var    result = _bucket.Query <object>(query);
                return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), id + " has been updated sucessfully"), new JsonMediaTypeFormatter()));
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }
Example #18
0
        public async Task <IHttpActionResult> Register(Company model)
        {
            var serializer = new JavaScriptSerializer();

            try
            {
                string keyId        = "company_" + model.Email;
                var    userDocument = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " where keyID= '" + keyId + "'").ToList();

                if (userDocument.Count > 0)
                {
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "The e-mail already exists"), new JsonMediaTypeFormatter()));
                }
                if (!ModelState.IsValid)
                {
                    var modelErrors = new List <string>();
                    foreach (var modelState in ModelState.Values)
                    {
                        foreach (var modelError in modelState.Errors)
                        {
                            //modelErrors.Add(modelError.ErrorMessage);
                            modelErrors.Add(modelError.ErrorMessage == "" ? modelError.Exception.Message : modelError.ErrorMessage);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                var userDocumentPhone = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " where " + _bucket.Name + ".mobNum.num= '" + model.MobNum.NumM + "'").ToList();

                if (userDocumentPhone.Count > 0)
                {
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "104-Mobile number already exists"), new JsonMediaTypeFormatter()));
                }

                MobNum mobNum = new MobNum();
                mobNum.CountryCodeM = model.MobNum.CountryCodeM;
                mobNum.NumM         = model.MobNum.NumM;

                TelNum telNum = new TelNum();
                telNum.CountryCodeT = model.TelNum.CountryCodeT;
                telNum.NumT         = model.TelNum.NumT;

                AuditInfo auditInfo = new AuditInfo();
                auditInfo.Version        = "1";
                auditInfo.Status         = "true";
                auditInfo.LastChangeDate = DataConversion.ConvertYMDHMS(DateTime.Now.ToString());;
                auditInfo.LastChangeBy   = model.Email;


                List <Roles> lstRoles = new List <Roles>();

                foreach (var role in model.Roles)
                {
                    Roles roles = new Roles();
                    roles.RoleID = role.RoleID;
                    roles.Link   = role.Link;
                    lstRoles.Add(roles);
                }

                /*List<CompanyRoles> lstRoles = new List<CompanyRoles>();
                 *
                 * foreach (var role in model.Roles)
                 * {
                 *  CompanyRoles roles = new CompanyRoles();
                 *  roles.RoleID = role.RoleID;
                 *  roles.Link = role.Link;
                 *  lstRoles.Add(roles);
                 * }*/

                List <Fines> lstFines = new List <Fines>();

                foreach (var fine in model.Fines)
                {
                    Fines fines = new Fines();
                    fines.FineID   = fine.FineID;
                    fines.DateTime = fine.DateTime;
                    fines.Amount   = fine.Amount;
                    fines.Status   = fine.Status;
                    fines.Remark   = fine.Remark;
                    lstFines.Add(fines);
                }

                List <Documents> lstDocuments = new List <Documents>();

                foreach (var document in model.Documents)
                {
                    Documents addnewDocument = new Documents();
                    addnewDocument.DocumentID = document.DocumentID;
                    addnewDocument.Type       = document.Type;
                    addnewDocument.Version    = document.Version;
                    addnewDocument.ExpDate    = document.ExpDate;
                    addnewDocument.DocStatus  = document.DocStatus;
                    lstDocuments.Add(document);
                }

                List <Vehicles> lstVehicles = new List <Vehicles>();
                foreach (var vehicle in model.Vehicles)
                {
                    Vehicles vehicles = new Vehicles();
                    vehicles.VehicleID = vehicle.VehicleID;
                    vehicles.Make      = vehicle.Make;
                    vehicles.ModelYear = vehicle.ModelYear;
                    vehicles.VehType   = vehicle.VehType;
                    vehicles.Status    = vehicle.Status;
                    lstVehicles.Add(vehicles);
                }

                CompanyAddress address = new CompanyAddress();
                address.City    = model.Address.City;
                address.Zip     = model.Address.Zip;
                address.State   = model.Address.State;
                address.Country = model.Address.Country;

                Line line = new Line();
                line.Line1   = model.Address.Line.Line1;
                line.Line2   = model.Address.Line.Line2;
                address.Line = line;


                FullName fullname = new FullName();

                fullname.En_US = model.fullName.En_US;

                fullname.Ar_SA = model.fullName.Ar_SA;

                var eotp = GenerateOtp();
                var motp = GenerateOtp();
                sendEmail.SendOtpViaEmail(model.Email, fullname.En_US, eotp);

                SendOtpViaMobile(model.MobNum, motp);

                string password   = Guid.NewGuid().ToString("d").Substring(1, 4);
                var    companyDoc = new Document <Company>()
                {
                    Id      = "company_" + model.Email,
                    Content = new Company
                    {
                        KeyID     = "company_" + model.Email,
                        fullName  = fullname,
                        Fines     = lstFines,
                        MobNum    = mobNum,
                        AuditInfo = auditInfo,
                        Vehicles  = lstVehicles,
                        Roles     = lstRoles,
                        TelNum    = model.TelNum,
                        DocType   = model.DocType,
                        Documents = lstDocuments,
                        Email     = model.Email,
                        Address   = address,
                        Website   = model.Website
                    },
                };

                var result = await _bucket.InsertAsync(companyDoc);

                if (!result.Success)
                {
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), result.Message), new JsonMediaTypeFormatter()));
                }
                else
                {
                    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()));
            }
        }
        public async Task <IHttpActionResult> RegisterDriverStatus(RoadsideAssistanceModel 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);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                var userKey = "RoadSideAssistance_" + model.PassengerID;
                if (await _bucket.ExistsAsync(userKey))
                {
                    //return Content(HttpStatusCode.Conflict, new Error($"RoadSideAssistance '{model.PassengerID}' already exists"));
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "169-Passenger ID already exists"), new JsonMediaTypeFormatter()));
                }

                AuditInfo auditInfo = new AuditInfo();
                if (model.AuditInfo != null)
                {
                    auditInfo.Version        = model.AuditInfo.Version;
                    auditInfo.Status         = model.AuditInfo.Status;
                    auditInfo.LastChangeDate = DataConversion.ConvertYMDHMS(DateTime.Now.ToString());
                    auditInfo.LastChangeBy   = model.AuditInfo.LastChangeBy;
                }
                var roadSideAssistanceMessageDoc = new Document <RoadsideAssistanceModel>()
                {
                    Id      = userKey,
                    Content = new RoadsideAssistanceModel
                    {
                        PassengerID     = model.PassengerID,
                        MobileNumber    = model.MobileNumber,
                        Latitude        = model.Latitude,
                        Longitude       = model.Longitude,
                        ServiceRequired = model.ServiceRequired,
                        Comments        = model.Comments,
                        AuditInfo       = auditInfo
                    }
                };
                var result = await _bucket.InsertAsync(roadSideAssistanceMessageDoc);

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

                RoadSideAssistanceResponse roadSideAssistanceResponse = new RoadSideAssistanceResponse();
                roadSideAssistanceResponse.RequestRefID = result.Document.Id;
                roadSideAssistanceResponse.Message      = "message by CT";
                roadSideAssistanceResponse.Telephone    = "1800-6000-123456";

                var jsonRSAR = JSONHelper.ToJSON(roadSideAssistanceResponse);
                return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), jsonRSAR)));
                //return Content(HttpStatusCode.OK, roadSideAssistanceResponse);
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }
Example #20
0
        public async Task <IHttpActionResult> Register(DriverModel model)
        {
            //Modified by Arvind on 23-07-2018 as per joe email
            if (string.IsNullOrEmpty(model.NameEN) && string.IsNullOrEmpty(model.NameAR))
            {
                return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "110-NameEN or NameAR is required"), new JsonMediaTypeFormatter()));
            }
            string destinationPath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings.Get("FilePath"));

            destinationPath = destinationPath + "/driver";
            string root     = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings.Get("TempFilePath"));
            var    tempPath = Path.GetTempPath();

            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);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                var driverId = "Driver_" + model.ID;
                var driverDocumentEmirati = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " where id= '" + model.ID + "'").ToList();
                var driverDocumentEmail   = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " where emailAddress= '" + model.EmailAddress + "'").ToList();

                if (model.Action == "Add")
                {
                    if (driverDocumentEmirati.Count > 0)
                    {
                        return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "165-Emirati Id already exists"), new JsonMediaTypeFormatter()));
                    }
                    if (driverDocumentEmail.Count > 0)
                    {
                        return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "105-The e-mail already exists"), new JsonMediaTypeFormatter()));
                    }
                }

                bool isDriverValid = true;

                string password  = Guid.NewGuid().ToString("d").Substring(1, 4);
                var    driverDoc = new Document <DriverModel>()
                {
                    Id      = driverId,
                    Content = new DriverModel
                    {
                        ID                     = model.ID,
                        NameEN                 = model.NameEN,
                        NameAR                 = model.NameAR,
                        Action                 = model.Action,
                        DriverValid            = isDriverValid.ToString(),
                        EmailAddress           = model.EmailAddress,
                        LicenseNumber          = model.LicenseNumber,
                        PassportNumber         = model.PassportNumber,
                        MobileNumber           = model.MobileNumber,
                        PermitNumber           = model.PermitNumber,
                        Photo                  = model.Photo,
                        VehicleType            = model.VehicleType,
                        Password               = password,
                        Franchise              = model.Franchise,
                        IsActive               = true,
                        Created_On             = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                        Created_By             = model.EmailAddress,
                        CarTrackDriverResponse = new CarTrackDriverResponse
                        {
                            CTStatus      = "No",
                            CTDescription = string.Empty
                        }
                    }
                };
                if (model.Action == "Add")
                {
                    var result = await _bucket.InsertAsync(driverDoc);

                    if (!result.Success)
                    {
                        return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                    }
                    return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.Add, result.Document.Id), new JsonMediaTypeFormatter()));
                }
                else if (model.Action == "MOD")
                {
                    string queryString = @" update " + _bucket.Name + " set nameEN ='" + model.NameEN + "',nameAR = '" + model.NameAR + "',action ='" + model.Action + "', emailAddress = '" + model.EmailAddress + "',licenseNumber = '" + model.LicenseNumber + "' , passportNumber = '" + model.PassportNumber + "' ,mobileNumber = '" + model.MobileNumber + "' , permitNumber = '" + model.PermitNumber + "',vehicleType = '" + model.VehicleType + "',carTrackDriverResponse.ctStatus='No',carTrackDriverResponse.ctDescription='',modifiedDate='" + DateTime.Now.ToString() + "'  where meta().id= 'Driver_" + model.ID + "'";
                    var    result      = await _bucket.QueryAsync <DriverModel>(queryString);

                    if (!result.Success)
                    {
                        return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "Data has not been updated."), new JsonMediaTypeFormatter()));
                    }

                    return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.Update, model.ID.ToLower() + " updated successfully"), new JsonMediaTypeFormatter()));
                }
                return(null);
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }
Example #21
0
        public async Task <IHttpActionResult> Register(License 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);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                var driverlicenceId = "DriverLicence_" + model.ID;
                var driverlicenceDocumentEmirati = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " where ID= '" + model.ID + "'").ToList();


                if (Convert.ToDateTime(model.ExpiryDate) <= Convert.ToDateTime(model.IssueDate))
                {
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "164-license expiry date should be breater than license issue date"), new JsonMediaTypeFormatter()));
                }

                if (model.Action == "ADD")
                {
                    if (driverlicenceDocumentEmirati.Count > 0)
                    {
                        return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "165-Emirati Id already exists"), new JsonMediaTypeFormatter()));
                    }
                }


                if (model.Action == "ADD")
                {
                    var driverLicenseDoc = new Document <License>()
                    {
                        Id      = driverlicenceId,
                        Content = new License
                        {
                            ID            = model.ID,
                            Action        = model.Action,
                            LicenseNumber = model.LicenseNumber,
                            IssueDate     = DataConversion.ConvertYMDHMS(model.IssueDate),
                            ExpiryDate    = DataConversion.ConvertYMDHMS(model.ExpiryDate),
                            HotelPickup   = model.HotelPickup,
                            IsActive      = true,
                            Created_On    = DataConversion.ConvertYMDHMS(DateTime.Now.ToString()),
                        }
                    };

                    var result = await _bucket.InsertAsync(driverLicenseDoc);

                    if (!result.Success)
                    {
                        return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                    }
                    return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.Add, result.Document.Id), new JsonMediaTypeFormatter()));
                }
                else if (model.Action == "MOD")
                {
                    string queryString = @" update " + _bucket.Name + " set action ='" + model.Action + "', licenseNumber = '" + model.LicenseNumber + "',modifiedDate='" + DateTime.Now.ToString() + "'  where id= '" + model.ID + "'";
                    var    result      = await _bucket.QueryAsync <DriverModel>(queryString);

                    if (!result.Success)
                    {
                        return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "Data has not been updated."), new JsonMediaTypeFormatter()));
                    }
                    return(Content(HttpStatusCode.Accepted, model.ID + " updated successfully"));
                }
                return(null);
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }
        public async Task <IHttpActionResult> RegisterDriverStatus(SawariBookingModel 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);
                        }
                    }
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), modelErrors[0].ToString()), new JsonMediaTypeFormatter()));
                }

                var userKey = "SawariBooking_" + model.PassengerID;
                if (await _bucket.ExistsAsync(userKey))
                {
                    //return Content(HttpStatusCode.Conflict, new Error($"SawariBooking '{model.PassengerID}' already exists"));
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "169-Passenger ID already exists."), new JsonMediaTypeFormatter()));
                }
                AuditInfo auditInfo = new AuditInfo();
                if (model.AuditInfo != null)
                {
                    auditInfo.Version        = model.AuditInfo.Version;
                    auditInfo.Status         = model.AuditInfo.Status;
                    auditInfo.Remarks        = model.AuditInfo.Remarks;
                    auditInfo.LastChangeDate = DataConversion.ConvertYMDHMS(DateTime.Now.ToString());
                    auditInfo.LastChangeBy   = model.AuditInfo.LastChangeBy;
                    auditInfo.DateCreated    = DataConversion.ConvertYMDHMS(DateTime.Now.ToString());
                    auditInfo.CreatedBy      = model.AuditInfo.CreatedBy;
                }
                var sawariBookingModelMessageDoc = new Document <SawariBookingModel>()
                {
                    Id      = userKey,
                    Content = new SawariBookingModel
                    {
                        PassengerID      = model.PassengerID,
                        MobileNumber     = model.MobileNumber,
                        FromLocation     = model.FromLocation,
                        ToLocation       = model.ToLocation,
                        DateTimeRequired = model.DateTimeRequired,
                        Comments         = model.Comments,
                        AuditInfo        = auditInfo
                    }
                };
                var result = await _bucket.InsertAsync(sawariBookingModelMessageDoc);

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

                SawariBookingResponse sawariBookingResponse = new SawariBookingResponse();
                sawariBookingResponse.RequestRefID = result.Document.Id;
                sawariBookingResponse.Message      = "messge by CT";
                sawariBookingResponse.Telephone    = "1800-6000-123456";

                var jsonSBR = JSONHelper.ToJSON(sawariBookingResponse);
                return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), jsonSBR), new JsonMediaTypeFormatter()));
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter()));
            }
        }
Example #23
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()));
            }
        }
Example #24
0
        public IHttpActionResult EmployeeRegister(Individual model)
        {
            try
            {
                if (model.fullName == null)
                {
                    return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "224-Full name is required"), new JsonMediaTypeFormatter()));
                }
                else
                {
                    if (string.IsNullOrEmpty(model.fullName.Ar_SA) && string.IsNullOrEmpty(model.fullName.En_US))
                    {
                        return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "224-Full name is required"), new JsonMediaTypeFormatter()));
                    }
                }
                // Validate Model
                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 userDocumentEmail = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " where email= '" + model.Email + "' and isActive=true").ToList();
                if (userDocumentEmail.Count > 0)
                {
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "105-The e-mail already exists"), new JsonMediaTypeFormatter()));
                }

                if (model.LoginDetails != null)
                {
                    if (string.IsNullOrEmpty(model.LoginDetails.Password))
                    {
                        return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "158-Password is required"), new JsonMediaTypeFormatter()));
                    }
                }

                var userDocumentPhone = _bucket.Query <object>(@"SELECT * From " + _bucket.Name + " where " + _bucket.Name + ".mobNum.num= '" + model.MobNum.NumM + "'").ToList();

                if (userDocumentPhone.Count > 0)
                {
                    return(Content(HttpStatusCode.Conflict, MessageResponse.Message(HttpStatusCode.Conflict.ToString(), "Mobile number already exists"), new JsonMediaTypeFormatter()));
                }

                Address address = new Address();
                address.City    = model.Address.City;
                address.State   = model.Address.State;
                address.Area    = model.Address.Area;
                address.Street  = model.Address.Street;
                address.BldgNum = model.Address.BldgNum;
                address.FlatNum = model.Address.FlatNum;

                MobNum mobNum = new MobNum();
                mobNum.CountryCodeM = model.MobNum.CountryCodeM;
                mobNum.NumM         = model.MobNum.NumM;
                mobNum.AreaM        = model.MobNum.AreaM;

                TelNum telNum = new TelNum();
                if (model.TelNum != null)
                {
                    telNum.CountryCodeT = model.TelNum.CountryCodeT;
                    telNum.NumT         = model.TelNum.NumT;
                    telNum.AreaT        = model.TelNum.AreaT;
                }

                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.Email;
                lstauditInfo.Add(auditInfo);

                List <Roles> lstRoles = new List <Roles>();
                if (model.Roles != null)
                {
                    foreach (var role in model.Roles)
                    {
                        Roles roles = new Roles();
                        roles.RoleID = role.RoleID;
                        roles.Name   = role.Name;
                        roles.Link   = role.Link;
                        lstRoles.Add(roles);
                    }
                }

                #region MyRegion
                List <Fines>        lstFines        = new List <Fines>();
                List <Documents>    lstDocuments    = new List <Documents>();
                List <Vehicles>     lstVehicles     = new List <Vehicles>();
                List <Incidents>    lstIncident     = new List <Incidents>();
                List <ScoreCards>   lstScoreCard    = new List <ScoreCards>();
                List <DriverStatus> lstdriverStatus = new List <DriverStatus>();
                #endregion

                FullName fullName = new FullName();
                fullName.En_US = model.fullName.En_US;
                fullName.Ar_SA = model.fullName.Ar_SA;

                Status status = new Status();
                if (model.Status != null)
                {
                    status.StatusID = model.Status.StatusID;
                    status.DateTime = model.Status.DateTime;
                }



                //DataConversion.ConvertYMDHMS(DateTime.Now.AddDays(Convert.ToInt16(ConfigurationManager.AppSettings.Get("ValidToProfilePhotoDays"))).ToString())
                ProfilePhoto profilePhoto = new ProfilePhoto();
                if (model.ProfilePhoto != null)
                {
                    profilePhoto.DocFormat = model.ProfilePhoto.DocFormat;
                    profilePhoto.Photo     = model.ProfilePhoto.Photo;
                    profilePhoto.ValidFrom = DataConversion.ConvertYMDHMS(DateTime.Now.ToString());
                    profilePhoto.ValidTo   = DataConversion.ConvertYMDHMS(DateTime.Now.AddDays(Convert.ToInt16(ConfigurationManager.AppSettings.Get("ValidToProfilePhotoDays"))).ToString());
                }
                string docId = string.Empty;
                if (string.IsNullOrEmpty(model.KeyID))
                {
                    docId = "individual_" + Guid.NewGuid();
                }
                else
                {
                    docId = "individual_" + model.KeyID;
                }

                var employeeDoc = new Document <Individual>()
                {
                    Id      = docId,
                    Content = new Individual
                    {
                        KeyID         = docId,
                        fullName      = fullName,
                        DOB           = DataConversion.ConvertDateYMD(model.DOB),
                        Nationality   = model.Nationality,
                        Gender        = model.Gender,
                        Fines         = lstFines,
                        Language      = model.Language,
                        MaritalStatus = model.MaritalStatus,
                        MobNum        = mobNum,
                        AuditInfo     = lstauditInfo,
                        Vehicles      = lstVehicles,
                        Roles         = lstRoles,
                        TelNum        = telNum,
                        DocType       = ("Individual").ToLower(),
                        Documents     = lstDocuments,
                        Email         = model.Email,
                        ProfilePhoto  = profilePhoto,
                        Notes         = model.Notes,
                        ScoreCards    = lstScoreCard,
                        Address       = address,
                        Religion      = model.Religion,
                        Status        = status,
                        Incidents     = lstIncident,
                        DriverStatus  = lstdriverStatus,
                    },
                };
                var result = _bucket.Insert(employeeDoc);
                if (!result.Success)
                {
                    return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), result.Message), new JsonMediaTypeFormatter()));
                }
                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()));
            }
        }