public JsonResult Cart(VerificationMessages msg)
        {
            if (Session["User_Name"] == null)
            {
                return(Json(1));
            }

            VehiclesDbHandle dbhandle = new VehiclesDbHandle();

            msg.Result         = 0;
            msg.Message        = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = false;

            msg.Result = dbhandle.ReserveVehicle(Convert.ToString(Session["User_Name"]));

            if (msg.Result == -1)
            {
                msg.Message      = "This vehicle has been already reserved!";
                msg.DisplayError = true;
            }
            else if (msg.Result == 3)
            {
                msg.Message      = "The cart is empty!";
                msg.DisplayError = true;
            }
            else
            {
                msg.Message        = "You have successfully reserved the vehicle! You may find more information in your profile.";
                msg.DisplaySuccess = true;
            }

            return(Json(msg));
        }
示例#2
0
        public JsonResult SaveUserPassword(string PasswordRechek, VerificationMessages msg)
        {
            UsersDbHandle dbhandle = new UsersDbHandle();

            msg.Result         = 0;
            msg.Message        = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = false;

            if (string.IsNullOrEmpty(PasswordRechek) || PasswordRechek.Trim().Length < 6)
            {
                msg.Result = -2;
            }
            else
            {
                PasswordRechek = EncryptWithMD5(PasswordRechek);
                msg.Result     = dbhandle.Update_Password(PasswordRechek.Trim(), Convert.ToString(Session["User_Name"]).Trim());
            }

            if (msg.Result == -2)
            {
                msg.DisplayError = true;
                msg.Message      = "Please fill up the password!";
            }
            else
            {
                msg.DisplaySuccess = true;
                msg.Message        = "The password has been successfully changed!";
            }

            return(Json(msg));
        }
        public JsonResult Details(string PickUp_Date, string Return_Date, string Id, VerificationMessages msg)
        {
            if (Session["User_Name"] == null)
            {
                return(Json(1));
            }

            if (string.IsNullOrEmpty(PickUp_Date) || string.IsNullOrEmpty(Return_Date))
            {
                msg.DisplayError = true;
                msg.Message      = "Please choose date!";
                return(Json(msg));
            }

            VehiclesDbHandle dbhandle = new VehiclesDbHandle();

            ViewBag.DetailsVehicle = dbhandle.GetFullDetailsVehicles(Id);

            msg.Result         = 0;
            msg.Message        = string.Empty;
            msg.RedirectLink   = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = false;

            if (!string.IsNullOrEmpty("Id") && Session["User_Name"] != null)
            {
                msg.Result = dbhandle.AddVehicleToCart(Convert.ToString(Session["User_Name"]).Trim(), Id.Trim(), PickUp_Date.Trim(), Return_Date.Trim());

                if (msg.Result == -1)
                {
                    msg.Message      = "You can only have 1 item in the cart!";
                    msg.DisplayError = true;
                }
                else if (msg.Result == -2)
                {
                    msg.Message      = "This vehicle has been already reserved!";
                    msg.DisplayError = true;
                }
                else
                {
                    msg.Message        = "The vehicle has been successfully added to the cart!";
                    msg.DisplaySuccess = true;
                }
            }
            else
            {
                msg.Message      = "Please login to continue!";
                msg.DisplayError = true;
            }

            return(Json(msg));
        }
        public JsonResult Register(Users smodel, VerificationMessages msg)
        {
            msg.Result         = 0;
            msg.Message        = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = false;

            if (string.IsNullOrEmpty(smodel.User_UserName) ||
                string.IsNullOrEmpty(smodel.User_EmailAddress) ||
                string.IsNullOrEmpty(smodel.User_FirstName) ||
                string.IsNullOrEmpty(smodel.User_LastName) ||
                string.IsNullOrEmpty(smodel.User_Address) ||
                string.IsNullOrEmpty(smodel.User_PostalCode) ||
                (string.IsNullOrEmpty(smodel.User_PhoneNumber) || smodel.User_PhoneNumber.Trim().Length < 6 || smodel.User_PhoneNumber.Trim().Length > 20) ||
                (string.IsNullOrEmpty(smodel.User_Password) || smodel.User_Password.Trim().Length < 6 || smodel.User_Password.Trim().Length > 20))
            {
                msg.DisplayError = true;
                msg.Message      = "Invalid!";
                return(Json(msg));
            }

            smodel.User_Password = EncryptWithMD5(smodel.User_Password.Trim());

            UsersDbHandle dbHandle = new UsersDbHandle();

            msg.Result = dbHandle.AddUser(smodel);

            if (msg.Result == -1)
            {
                msg.Message      = "The username already exists! Please use different username.";
                msg.DisplayError = true;
            }
            else if (msg.Result == -2)
            {
                msg.Message      = "The email address which you are trying to use has been already taken.";
                msg.DisplayError = true;
            }
            else
            {
                msg.Message        = "The registration has been done successfully! You may now login to the personal area.";
                msg.DisplaySuccess = true;
            }

            return(Json(msg));
        }
        public JsonResult Login(string UserName, string Password, VerificationMessages msg)
        {
            msg.Result         = 0;
            msg.Message        = string.Empty;
            msg.RedirectLink   = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = false;

            if (string.IsNullOrEmpty(UserName) || string.IsNullOrEmpty(Password))
            {
                msg.DisplayError = true;
                msg.Message      = "Invalid!";
                return(Json(msg));
            }

            Password = EncryptWithMD5(Password.Trim());

            UsersDbHandle dbHandle = new UsersDbHandle();

            msg.Result = dbHandle.LoginUser(UserName, Password);

            if (msg.Result == -1)
            {
                msg.DisplayError = true;
                msg.Message      = "The username or password are incorrect. Please try again!";
            }
            else
            {
                Session["User_Role"] = msg.Result;
                Session["User_Name"] = UserName;

                msg.NeedToRedirect = true;
                msg.RedirectLink   = Url.Action("Index", "Home");
            }

            return(Json(msg));
        }
        public ActionResult RemoveItemFromCart(string Id, VerificationMessages msg)
        {
            if (Session["User_Name"] == null || string.IsNullOrEmpty(Id))
            {
                return(RedirectToAction("Index", "Home"));
            }

            VehiclesDbHandle dbhandle = new VehiclesDbHandle();

            msg.Result         = 0;
            msg.Message        = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = true;

            msg.Result = dbhandle.RemoveItemFromCart(Id, Convert.ToString(Session["User_Name"]));

            msg.Message        = "The item has been successfully removed from the cart!";
            msg.DisplaySuccess = true;
            msg.RedirectLink   = Url.Action("Index", "Home");

            return(Json(msg));
        }
        public JsonResult DeleteVehicle(string Id, VerificationMessages msg)
        {
            VehiclesDbHandle dbhandle = new VehiclesDbHandle();

            msg.Result         = 0;
            msg.Message        = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = false;

            if (string.IsNullOrEmpty(Id.Trim()))
            {
                msg.DisplayError = true;
                msg.Message      = "Invalid!";
                return(Json(msg));
            }

            msg.Result = dbhandle.DeleteVehicle(Id.Trim());

            msg.DisplaySuccess = true;
            msg.Message        = "The vehicle has been successfully deleted!";

            return(Json(msg));
        }
        public JsonResult ApproveLicence(string Id, VerificationMessages msg)
        {
            LicencesDbHandle dbhandle = new LicencesDbHandle();

            msg.Result         = 0;
            msg.Message        = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = false;

            if (string.IsNullOrEmpty(Id.Trim()))
            {
                msg.DisplayError = true;
                msg.Message      = "Invalid!";
                return(Json(msg));
            }

            msg.Result = dbhandle.ApproveLicence(Id.Trim());

            msg.DisplaySuccess = true;
            msg.Message        = "The licence has been successfully approved!";

            return(Json(msg));
        }
示例#9
0
        public JsonResult DeleteReservedVehicle(string Id, VerificationMessages msg)
        {
            VehiclesDbHandle dbhandle = new VehiclesDbHandle();

            msg.Result         = 0;
            msg.Message        = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = false;

            if (string.IsNullOrEmpty(Id.Trim()))
            {
                msg.DisplayError = true;
                msg.Message      = "Invalid!";
                return(Json(msg));
            }

            msg.Result = dbhandle.DeleteReservedVehicleForUser(Convert.ToString(Session["User_Name"]).Trim(), Id.Trim());

            msg.DisplaySuccess = true;
            msg.Message        = "The vehicle has been deleted!";

            return(Json(msg));
        }
        public async Task <string> GetFile(byte[] fileHash)
        {
            var requestMessage = new GetFileMessage(fileHash);

            var subDir = new DirectoryInfo(Path.Combine(TempStorageDirectory, Hasher.GetDirectoryNameFromHash(fileHash)));

            if (!subDir.Exists)
            {
                subDir.Create();
            }
            var fileName = Hasher.GetFileNameFromHash(fileHash);
            var filePath = Path.Combine(subDir.FullName, fileName);

            FilesInProgress.Add(fileHash, File.OpenWrite(filePath));

            await Communicator.SendMessage(requestMessage);

            // wait for transfer
            var    gotVerificationMessage = false;
            string resultsPath            = null;

            while (!gotVerificationMessage)
            {
                if (VerificationMessages.ContainsKey(fileHash))
                {
                    var verifyMessage = VerificationMessages[fileHash] as FileStoredVerificationMessage;
                    resultsPath = (verifyMessage?.Success ?? false) ? verifyMessage.FilePath : null;
                    VerificationMessages.Remove(fileHash);
                    gotVerificationMessage = true;
                }

                await Task.Delay(1);
            }

            return(resultsPath);
        }
        public JsonResult UploadVehicle(string VehicleName, string VehiclePrice, string VehicleYear, string VehicleLong, string VehicleLat, HttpPostedFileBase FileVehicle, FormCollection form, VerificationMessages msg)
        {
            VehiclesDbHandle dbhandle = new VehiclesDbHandle();

            msg.Result         = 0;
            msg.Message        = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = false;

            if (string.IsNullOrEmpty(VehicleName.Trim()) ||
                string.IsNullOrEmpty(VehiclePrice.Trim()) ||
                string.IsNullOrEmpty(VehicleYear.Trim()) ||
                string.IsNullOrEmpty(VehicleLong.Trim()) ||
                string.IsNullOrEmpty(VehicleLat.Trim()))
            {
                msg.DisplayError = true;
                msg.Message      = "Invalid!";
                return(Json(msg));
            }

            string VehicleCategories = form["VehicleCategories"].ToString();
            string VehicleType       = form["VehicleType"].ToString();
            string VehicleReFillType = form["VehicleReFillType"].ToString();

            string extension = Path.GetExtension(FileVehicle.FileName);

            FileVehicle.SaveAs(Server.MapPath("/Content/images/vehiclesclients/") + VehicleName.Trim() + Convert.ToString(Session["User_Name"]).Trim() + extension);

            msg.Result = dbhandle.AddVehicleAdmin(VehicleName, VehiclePrice, VehicleCategories, VehicleType, VehicleReFillType, VehicleYear, VehicleLong, VehicleLat, Convert.ToString(Session["User_Name"]).Trim(), extension);

            msg.DisplaySuccess = true;
            msg.Message        = "The vehicle has been successfully added!";

            return(Json(msg));
        }
示例#12
0
        public JsonResult SaveUserDetails(string EmailAddressRechek, string PhoneNumberRechek, string AddressRechek, string PostalCodeRechek, VerificationMessages msg)
        {
            UsersDbHandle dbhandle = new UsersDbHandle();

            msg.Result         = 3;
            msg.Message        = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = false;

            if (((TempData["User_Details"] as IEnumerable <Users>).FirstOrDefault().User_EmailAddress) != EmailAddressRechek.Trim())
            {
                if (string.IsNullOrEmpty(EmailAddressRechek))
                {
                    msg.Result = -2;
                }
                else
                {
                    msg.Result = dbhandle.Update_EmailAddress(EmailAddressRechek.Trim(), Convert.ToString(Session["User_Name"]));

                    if (msg.Result == -1)
                    {
                        msg.DisplayError = true;
                        msg.Message      = "The email already exist! Please use different email address.";
                    }
                }
            }

            if (((TempData["User_Details"] as IEnumerable <Users>).FirstOrDefault().User_PhoneNumber) != PhoneNumberRechek.Trim())
            {
                if (string.IsNullOrEmpty(PhoneNumberRechek))
                {
                    msg.Result = -2;
                }
                else
                {
                    msg.Result = dbhandle.Update_PhoneNumber(PhoneNumberRechek.Trim(), Convert.ToString(Session["User_Name"]));
                }
            }

            if (((TempData["User_Details"] as IEnumerable <Users>).FirstOrDefault().User_Address) != AddressRechek.Trim())
            {
                if (string.IsNullOrEmpty(AddressRechek))
                {
                    msg.Result = -2;
                }
                else
                {
                    msg.Result = dbhandle.Update_Address(AddressRechek.Trim(), Convert.ToString(Session["User_Name"]));
                }
            }

            if (((TempData["User_Details"] as IEnumerable <Users>).FirstOrDefault().User_PostalCode) != PostalCodeRechek.Trim())
            {
                if (string.IsNullOrEmpty(PostalCodeRechek))
                {
                    msg.Result = -2;
                }
                else
                {
                    msg.Result = dbhandle.Update_PostalCode(PostalCodeRechek.Trim(), Convert.ToString(Session["User_Name"]));
                }
            }

            if (msg.Result == -2)
            {
                msg.DisplayError = true;
                msg.Message      = "Please fill up the needed information!";
            }
            else if (msg.Result != 3)
            {
                msg.DisplaySuccess = true;
                msg.Message        = "The information has been successfully changed!";
            }

            TempData["User_Details"] = dbhandle.GetDetailsForSpecificUser(Convert.ToString(Session["User_Name"]));

            return(Json(msg));
        }
示例#13
0
        public JsonResult AddCreditCard(string CCFullName, string CCNumber, string CCMM, string CCYY, string CCSecretCode, VerificationMessages msg)
        {
            UsersDbHandle dbhandle = new UsersDbHandle();

            msg.Result         = 0;
            msg.Message        = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = false;

            if (string.IsNullOrEmpty(CCFullName) ||
                string.IsNullOrEmpty(CCNumber) ||
                string.IsNullOrEmpty(CCMM) ||
                string.IsNullOrEmpty(CCYY) ||
                string.IsNullOrEmpty(CCSecretCode))
            {
                msg.DisplayError = true;
                msg.Message      = "Invalid!";
                return(Json(msg));
            }

            msg.Result = dbhandle.AddCreditCard(CCFullName, CCNumber, CCMM, CCYY, CCSecretCode, Convert.ToString(Session["User_Name"]).Trim());

            if (msg.Result == -1)
            {
                msg.DisplayError = true;
                msg.Message      = "You have already added a credit card to your account! Please remove it and try again.";
            }
            else
            {
                msg.DisplaySuccess = true;
                msg.Message        = "The credit card has been successfully added to your account!";
            }

            return(Json(msg));
        }
示例#14
0
        public JsonResult UploadUserLicence(string NumberLic, string NameLic, string BirthDateLic, string IssueDateLic, string CategoryLic, HttpPostedFileBase FileLic, VerificationMessages msg)
        {
            LicencesDbHandle dbhandle = new LicencesDbHandle();

            msg.Result         = 0;
            msg.Message        = string.Empty;
            msg.DisplaySuccess = false;
            msg.DisplayError   = false;
            msg.NeedToRedirect = false;

            if (string.IsNullOrEmpty(NumberLic) ||
                string.IsNullOrEmpty(NameLic) ||
                string.IsNullOrEmpty(BirthDateLic) ||
                string.IsNullOrEmpty(IssueDateLic) ||
                string.IsNullOrEmpty(CategoryLic))
            {
                msg.DisplayError = true;
                msg.Message      = "Invalid!";
                return(Json(msg));
            }

            string extension = Path.GetExtension(FileLic.FileName);

            FileLic.SaveAs(Server.MapPath("/Content/images/user_licences/") + Convert.ToString(Session["User_Name"]).Trim() + extension);

            msg.Result = dbhandle.AddLicence(NameLic, NumberLic, BirthDateLic, IssueDateLic, CategoryLic, Convert.ToString(Session["User_Name"]).Trim(), extension);

            if (msg.Result == -1)
            {
                msg.DisplayError = true;
                msg.Message      = "The licence has been been already added to your account!";
            }
            else
            {
                msg.DisplaySuccess = true;
                msg.Message        = "The licence has been successfully added!";
            }

            return(Json(msg));
        }
        public async Task <bool> StoreFile(IBackupFile file, byte[] hash)
        {
            var success = false;

            await Communicator.SendMessage(new FileStartMessage(hash));

            var totalBytes = file.Length;
            var buffer     = new byte[BufferSize];

            var position       = 0L;
            var remainingBytes = totalBytes;
            var message        = new FileChunckMessage()
            {
                FileHash = hash
            };

            if (FileTransferResponse.ContainsKey(hash))
            {
                FileTransferResponse.Remove(hash);
            }
            FileTransferResponse.Add(hash, false);
            using (var fileStream = file.OpenRead())
            {
                while (position < totalBytes)
                {
                    var bytesToRead = (int)((remainingBytes > BufferSize) ? BufferSize : remainingBytes);
                    if (bytesToRead < BufferSize)
                    {
                        buffer = new byte[bytesToRead];
                    }
                    position        += fileStream.Read(buffer, 0, bytesToRead);
                    remainingBytes   = totalBytes - position;
                    message.FileData = buffer;
                    await Communicator.SendMessage(message);

                    while (!FileTransferResponse[hash])
                    {
                        await Task.Delay(1);
                    }

                    FileTransferResponse[hash] = false;
                }
            }

            await Communicator.SendMessage(new FileEndMessage(hash));

            // Watch the inbound messages for a verification message
            var gotVerificationMessage = false;

            while (!gotVerificationMessage)
            {
                if (VerificationMessages.ContainsKey(hash))
                {
                    var verifyMessage = VerificationMessages[hash] as FileStoredVerificationMessage;
                    success = verifyMessage?.Success ?? false;
                    VerificationMessages.Remove(hash);
                    gotVerificationMessage = true;
                }

                await Task.Delay(1);
            }

            return(success);
        }
        protected void ProcessMessage(object sender, MessageReceivedArgs e)
        {
            switch (e.Message)
            {
            case FileStartMessage message:
                if (!FilesInProgress.ContainsKey(message.Payload))
                {
                    var fileHash = message.Payload;
                    var subDir   = new DirectoryInfo(Path.Combine(TempStorageDirectory, Hasher.GetDirectoryNameFromHash(fileHash)));
                    if (!subDir.Exists)
                    {
                        subDir.Create();
                    }
                    var fileName = Hasher.GetFileNameFromHash(fileHash);
                    var filePath = Path.Combine(subDir.FullName, fileName);
                    FilesInProgress.Add(message.Payload, File.OpenWrite(filePath));
                }
                break;

            case FileChunckMessage message:
                if (FilesInProgress.ContainsKey(message.FileHash))
                {
                    var stream = FilesInProgress[message.FileHash];
                    stream.Write(message.FileData, 0, message.FileData.Length);
                    var receipt = new FileChunkReceivedMessage(message.FileHash, message.DataChecksum);
                    Communicator.SendMessage(((INetworkClient)sender).ClientName, receipt);
                }
                break;

            case FileEndMessage message:
                if (FilesInProgress.ContainsKey(message.Payload))
                {
                    var stream = FilesInProgress[message.Payload];
                    stream.Flush();

                    var fileHash = message.Payload;
                    var subDir   = Hasher.GetDirectoryNameFromHash(fileHash);
                    var fileName = Hasher.GetFileNameFromHash(fileHash);
                    var filePath = Path.Combine(TempStorageDirectory, subDir, fileName);
                    stream.Dispose();
                    ReadFile(((INetworkClient)sender).ClientName, message.Payload, new FileInfo(filePath));
                    FilesInProgress.Remove(message.Payload);
                }
                break;

            case AbandonFileTransferMessage message:
                if (FilesInProgress.ContainsKey(message.Payload))
                {
                    var stream = FilesInProgress[message.Payload];
                    stream.Dispose();
                    FilesInProgress.Remove(message.Payload);
                }
                break;

            case FileChunkReceivedMessage message:
                FileTransferResponse[message.FileHash] = true;
                break;

            case FileStoredVerificationMessage message:
                VerificationMessages.Add(message.FileHash, message);
                break;

            case GetFileMessage message:
                SendFile(((INetworkClient)sender).ClientName, message.Payload);
                break;
            }
        }