예제 #1
0
        public async Task <IActionResult> Edit(int id, DeliveryMan deliveryMan)
        {
            if (id != deliveryMan.Id)
            {
                return(NotFound());
            }
            var tempDeliveryMan = await _context.DeliveryMans.Where(m => m.Id == id).FirstOrDefaultAsync();

            tempDeliveryMan.Name        = deliveryMan.Name;
            tempDeliveryMan.Email       = deliveryMan.Email;
            tempDeliveryMan.NIDNumber   = deliveryMan.NIDNumber;
            tempDeliveryMan.PhoneNumber = deliveryMan.PhoneNumber;
            tempDeliveryMan.Address     = deliveryMan.Address;
            tempDeliveryMan.Status      = 0;

            try
            {
                _context.Update(tempDeliveryMan);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!DeliveryManExists(deliveryMan.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(RedirectToAction(nameof(Index)));
        }
예제 #2
0
        public async Task <IActionResult> Create(DeliveryManToAddDTO addDeliveryMan)
        {
            //check already exists or not

            // byte[] passwordHash, passwordSalt;
            // Extensions.CreatePasswordHash(addDeliveryMan.Password, out passwordHash, out passwordSalt);
            int total            = _unitOfWork.DeliveryMan.LastDeliverManId();
            var DeliveryManId    = Extensions.GenerateIdForDeliveryMan(total + 1);
            var DeliveryManToAdd = new DeliveryMan
            {
                DelivManIdentity = DeliveryManId,
                Name             = addDeliveryMan.Name,
                Phone            = addDeliveryMan.Phone,
                NID       = addDeliveryMan.NID,
                Address   = addDeliveryMan.Address,
                ECName    = addDeliveryMan.ECName,
                ECAddress = addDeliveryMan.ECAddress,
                ECPhone   = addDeliveryMan.ECPhone,
                // PasswordHash = passwordHash,
                // PasswordSalt = passwordSalt,
                ZoneId = addDeliveryMan.ZoneId
            };
            await _unitOfWork.DeliveryMan.AddDeliveryManAsync(DeliveryManToAdd);

            var result = await _unitOfWork.CompleteAsync();

            if (result == 0)
            {
                return(BadRequest("Something went wrong!"));
            }

            return(Ok("Delivery Man Added"));
        }
예제 #3
0
        private async void SendBoundOrderDeliveryEmail(DeliveryMan deliveryMan)
        {
            string parent = Directory.GetParent(Directory.GetCurrentDirectory()).FullName;
            string path;

            path = Path.Combine(parent, "DeliveryApp\\wwwroot\\Templates\\EmailTemplates\\BoundOrderDeliveryEmail.html");


            var builder = new BodyBuilder();

            using (StreamReader SourceReader = System.IO.File.OpenText(path))
            {
                builder.HtmlBody = SourceReader.ReadToEnd();
            }

            string messageBody = string.Format(
                builder.HtmlBody,
                deliveryMan.FirstName + " " + deliveryMan.LastName
                );

            await emailSenderService.SendBoundOrderDeliveryEmail(
                deliveryMan.Email,
                deliveryMan.FirstName + " " + deliveryMan.LastName,
                messageBody
                );
        }
예제 #4
0
        //The function adds a delivery man to the data base or updates it in case that the delivery man is already exist

        public void Add_DeliveryMan(DeliveryMan dm)
        {
            using (var ctx = new DeliveryContext())
            {
                try {
                    if (ctx.DeliveryMans.Find(dm.Id) != null)
                    {
                        var old = ctx.DeliveryMans.Find(dm.Id);
                        updateAddress(dm.Address);
                        old.FirstName   = dm.FirstName;
                        old.LastName    = dm.LastName;
                        old.PhoneNumber = dm.PhoneNumber;
                        old.Email       = dm.Email;
                        ctx.SaveChanges();
                    }
                    else
                    {
                        ctx.Addresses.Add(dm.Address);
                        ctx.DeliveryMans.Add(dm);
                        ctx.SaveChanges();
                    }
                }
                catch { MessageBox.Show("Unable to connect to DataBase"); }
            }
        }
        // GET: DeliveryMan/Details/5
        public ActionResult Details(long id)
        {
            var responseTask = Client.GetAsync("getDeliveryman/" + id);

            responseTask.Wait();

            var result = responseTask.Result;

            if (result.IsSuccessStatusCode)
            {
                var readJob = result.Content.ReadAsAsync <DeliveryMan>();
                readJob.Wait();
                DeliveryMan deliveryMen = (DeliveryMan)readJob.Result;

                deliveryMen.start_time = deliveryMen.StartTime.ToShortTimeString();
                deliveryMen.end_time   = deliveryMen.EndTime.ToShortTimeString();


                return(View(deliveryMen));
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Server error occured. Please contact admin for help!");
            }
            return(View(Enumerable.Empty <DeliveryMan>()));

            ;
        }
예제 #6
0
        public IHttpActionResult Post(DeliveryMan del)
        {
            context.DeliveryMans.Add(del);
            context.SaveChanges();

            return(Created(Url.Link("GetDeliverymanById", new { id = del.Id }), del));
        }
예제 #7
0
    // start by DeliveryMan
    public void CustomStart(Object _callBy)
    {
        deliveryMan = (DeliveryMan)_callBy;

        // Instantiation of Player order UI
        for (int i = 0; i < deliveryMan.playerOrder.Keys.Count; i++)
        {
            string alimentName   = deliveryMan.playerOrder.Keys.ToList()[i];
            int    AlimentAmount = deliveryMan.playerOrder[alimentName];

            UI_LineOrder newLine = Instantiate(OrderLine, ContentOfOrder);
            newLine.InitText(alimentName, AlimentAmount);
            // set variable for DeliveryList
            newLine.DeliveryMan = deliveryMan;
            newLine.IndexInList = i;
        }

        // Instantiation of DeliveryMan Delivery UI
        for (int i = 0; i < deliveryMan.DeliveryManOrder.Keys.Count; i++)
        {
            string alimentName   = deliveryMan.DeliveryManOrder.Keys.ToList()[i];
            int    AlimentAmount = deliveryMan.DeliveryManOrder[alimentName];

            UI_LineOrder newLine = Instantiate(DeliveryLine, ContentOfDelivery);
            newLine.InitText(alimentName, AlimentAmount);
            newLine.DeliveryMan = deliveryMan;
        }
    }
        // Adding user control to the main window
        public void addUC(DeliveryMan deliveryMan, LogIn_AdministratorViewModel logIn_AdministratorViewModel)
        {
            Add_DeliverMan_UserCntrl _UserCntrl = new Add_DeliverMan_UserCntrl(deliveryMan, logIn_AdministratorViewModel);

            _UserCntrl.CmbBx_Street.IsEnabled = true;
            myStackPanel.Children.Add(_UserCntrl);
        }
예제 #9
0
        private async void SendVerificationEmail(DeliveryMan newDeliveryMan, string userId, string code)
        {
            var ip          = UsefulMethods.GetLocalIPAddress();
            var callBackUrl = "http://" + ip + ":51044/api/ConfirmDeliveryManEmail?userId=" + userId + "&code=" + code;

            string parent = Directory.GetParent(Directory.GetCurrentDirectory()).FullName;
            string path;

            path = Path.Combine(parent, "DeliveryApp\\wwwroot\\Templates\\EmailTemplates\\ConfirmRegistration.html");


            var builder = new BodyBuilder();

            using (StreamReader SourceReader = System.IO.File.OpenText(path))
            {
                builder.HtmlBody = SourceReader.ReadToEnd();
            }

            string messageBody = string.Format(
                builder.HtmlBody,
                newDeliveryMan.FirstName + " " + newDeliveryMan.LastName,
                callBackUrl
                );

            await emailSenderService.SendUserConfirmationEmail(
                newDeliveryMan.Email,
                newDeliveryMan.FirstName + " " + newDeliveryMan.LastName,
                messageBody
                );
        }
예제 #10
0
        public async Task <Object> NewDeliveryMan([FromBody] UserForCreationDto newDeliveryMan)
        {
            var identityUser = new IdentityUser
            {
                Email    = newDeliveryMan.Email,
                UserName = newDeliveryMan.Email
            };

            if (await _userManager.FindByEmailAsync(newDeliveryMan.Email) != null)
            {
                return(BadRequest(new { code = "DuplicatedEmail", message = "Cette adresse email est déjà utilisée." }));
            }

            try
            {
                var result = await _userManager.CreateAsync(identityUser, newDeliveryMan.Password);

                if (result.Succeeded)
                {
                    IdentityUser user = _userManager.Users.Where(u => u.Email == newDeliveryMan.Email).FirstOrDefault();


                    //Insert in the table location
                    var location = locationService.AddLocation(newDeliveryMan.Location);

                    //Transform the image base64 String
                    ImageModel uploadedImage = FileUploader.Base64ToImage(newDeliveryMan.ImageBase64String, "DeliveryMenPictures");

                    //Create the client entity
                    var entityDeliveryMan = new DeliveryMan
                    {
                        IdentityId        = user.Id,
                        Email             = newDeliveryMan.Email,
                        FirstName         = newDeliveryMan.FirstName,
                        LastName          = newDeliveryMan.LastName,
                        Phone             = newDeliveryMan.Phone,
                        DateOfBirth       = newDeliveryMan.DateOfBirth,
                        ImageBase64       = uploadedImage.ImageBytes,
                        PicturePath       = uploadedImage.Path,
                        Location          = location,
                        HasValidatedEmail = false,
                        IsValidated       = false
                    };

                    //Insert the new user in the DB
                    var addedDeliveryMan = deliveryMenService.AddDeliveryMan(entityDeliveryMan);

                    //Send the verification email
                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    SendVerificationEmail(addedDeliveryMan, user.Id, code);
                }
                return(Ok(result));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 public DeliveryManViewModel(DeliveryMan MydeliveryMan)
 {
     deliveryMan          = MydeliveryMan;
     addDeliveryManCMD    = new AddDeliveryManCommand(this);
     deliveryMan_M        = new DeliveryManModel();
     cities               = deliveryMan_M.GetCities();
     streetsGroupedByCity = deliveryMan_M.GetstreetsGroupedByCity();
 }
예제 #12
0
        public DeliveryMan AcceptDeliveryMan(DeliveryMan deliveryMan)
        {
            deliveryMan.IsValidated = true;
            deliveryMan.IsAvailable = true;

            repoDeliveryMan.Update(deliveryMan);
            return(deliveryMan);
        }
예제 #13
0
        public ActionResult DeleteConfirmed(int id)
        {
            DeliveryMan deliveryMan = db.DeliveryMen.Find(id);

            db.DeliveryMen.Remove(deliveryMan);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public DeliveryManViewModel(DeliveryMan MydeliveryMan, LogIn_AdministratorViewModel logIn_AdministratorViewModel)
 {
     deliveryMan          = MydeliveryMan;
     addDeliveryManCMD    = new AddDeliveryManCommand(this);
     deliveryMan_M        = new DeliveryManModel();
     cities               = deliveryMan_M.GetCities();
     streetsGroupedByCity = deliveryMan_M.GetstreetsGroupedByCity();
     this.LogIn_AdministratorViewModel = logIn_AdministratorViewModel;
 }
예제 #15
0
        public Add_DeliverMan_UserCntrl(DeliveryMan deliveryMan)
        {
            deliveyMan_MV    = new DeliveryManViewModel(deliveryMan);
            this.DataContext = deliveyMan_MV;

            InitializeComponent();
            CmbBx_City.ItemsSource = deliveyMan_MV.cities;
            CmbBx_Street.IsEnabled = false;
        }
예제 #16
0
 public ActionResult Edit([Bind(Include = "Id,DeliveryManName,ContactNumberDeliveryMan,EmailDeliveryMan,CommandId")] DeliveryMan deliveryMan)
 {
     if (ModelState.IsValid)
     {
         db.Entry(deliveryMan).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(deliveryMan));
 }
예제 #17
0
        public async Task <bool> AddDmAsync(DeliveryMan dm)
        {
            HttpResponseMessage response = await client.PostAsJsonAsync(
                $"/deliveries/createdm", dm);

            response.EnsureSuccessStatusCode();

            // return URI of the created resource.
            return(response.StatusCode == HttpStatusCode.OK);
        }
예제 #18
0
        public ActionResult Create(DeliveryMan dm)
        {
            if (ModelState.IsValid)
            {
                var task = Task.Run(async() => await deliveriesService.AddDmAsync(dm));
                var t    = task.Result;
                return(RedirectToAction("index"));
            }

            return(View(dm));
        }
예제 #19
0
        public ActionResult Create([Bind(Include = "Id,DeliveryManName,ContactNumberDeliveryMan,EmailDeliveryMan,CommandId")] DeliveryMan deliveryMan)
        {
            if (ModelState.IsValid)
            {
                db.DeliveryMen.Add(deliveryMan);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(deliveryMan));
        }
예제 #20
0
 public bool Insert(DeliveryMan delivery_Man)
 {
     if (_context.Set <DeliveryMan>().Add(delivery_Man) == delivery_Man)
     {
         _context.SaveChanges();
         return(true);
     }
     else
     {
         return(false);
     }
 }
예제 #21
0
        public JsonResult CreateNewDelivery(string fullname, string address, string phonenumber)
        {
            DeliveryMan delivery = new DeliveryMan();
            var         result   = false;

            delivery.Phone    = phonenumber;
            delivery.FullName = fullname;
            delivery.Address  = address;
            delivery.IsActive = true;
            unitOfWork.DeliverymanRepository.Insert(delivery);
            unitOfWork.DeliverymanRepository.SaveChanges();
            result = true;
            return(Json(result));
        }
예제 #22
0
        // GET: DeliveryMen/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DeliveryMan deliveryMan = db.DeliveryMen.Find(id);

            if (deliveryMan == null)
            {
                return(HttpNotFound());
            }
            return(View(deliveryMan));
        }
예제 #23
0
 public bool Update(DeliveryMan deliveryMan)
 {
     if (_context.Set <DeliveryMan>().Any(e => e.Id == deliveryMan.Id))
     {
         _context.Set <DeliveryMan>().Attach(deliveryMan);
         _context.Entry(deliveryMan).State = EntityState.Modified;
         _context.SaveChanges();
         return(true);
     }
     else
     {
         return(false);
     }
 }
예제 #24
0
        public IHttpActionResult Get()
        {
            var list = context.DeliveryMans.ToList();

            if (list.Count() == 0)
            {
                return(StatusCode(HttpStatusCode.NoContent));
            }

            List <DeliveryMan> manlist = new List <DeliveryMan>();

            foreach (var item in list)
            {
                DeliveryMan man = new DeliveryMan();
                man.Id      = item.Id;
                man.Area    = item.Area;
                man.User_Id = item.User_Id;

                man.links.Add(new Links()
                {
                    HRef = "http://localhost:56991/api/deliverymans", Method = "GET", Rel = "All Deliverymans"
                });
                man.links.Add(new Links()
                {
                    HRef = "http://localhost:56991/api/deliverymans/" + man.Id, Method = "GET", Rel = "Specific deliveryman"
                });
                man.links.Add(new Links()
                {
                    HRef = "http://localhost:56991/api/deliverymans/" + man.Id, Method = "PUT", Rel = "Deliveryman Edit"
                });
                man.links.Add(new Links()
                {
                    HRef = "http://localhost:56991/api/deliverymans/" + man.Id, Method = "DELETE", Rel = "Deliveryman Delete"
                });
                man.links.Add(new Links()
                {
                    HRef = "http://localhost:56991/api/deliverymans", Method = "POST", Rel = "Deliveryman Create"
                });

                manlist.Add(man);
            }
            return(Ok(manlist));
        }
        public ActionResult Delete(int id, DeliveryMan dm)
        {
            try
            {
                // TODO: Add delete logic here

                var deleteTask = Client.DeleteAsync("delete-DeliveryMan/" + id);

                var result = deleteTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    return(RedirectToAction("Index"));
                }
                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
예제 #26
0
        public async Task <IActionResult> Create(DeliveryMan deliveryMan)
        {
            if (ModelState.IsValid)
            {
                deliveryMan.Status = 0;
                _context.Add(deliveryMan);
                int count = await _context.SaveChangesAsync();

                deliveryMan.DeliveryManIdNo = "DM000" + deliveryMan.Id.ToString();
                _context.Update(deliveryMan);
                await _context.SaveChangesAsync();

                //if (count==1)
                //{
                //var checkDelivery = _context.Users.Where(m => m.UserName == deliveryMan.UserName).FirstOrDefaultAsync();
                //if (checkDelivery!=null)
                //{
                //    Random rnd = new Random();
                //    deliveryMan.UserName+=rnd.Next(1, 256).ToString();
                //}

                //var user = new ApplicationUser()
                //{
                //    UserName = deliveryMan.UserName,
                //    Email = deliveryMan.Email,
                //    UserTypeId = 3,
                //    PhoneNumber = deliveryMan.PhoneNumber,
                //    Status = 0
                //};
                //Create user with password
                //var result = await _userManager.CreateAsync(user,"Delivery123#");
                //deliveryMan.ApplicationUserId = user.Id;
                //deliveryMan.DeliveryManIdNo = "DM000" + deliveryMan.Id.ToString();
                //_context.Update(deliveryMan);
                //await _context.SaveChangesAsync();
                //await _userManager.AddToRoleAsync(user, "DeliveryMan");
                // }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(deliveryMan));
        }
        public ActionResult Create(DeliveryMan deliveryman)
        {
            try
            {
                deliveryman.end_time   = "2018-03-01T" + deliveryman.end_time + ":00";
                deliveryman.start_time = "2018-03-01T" + deliveryman.start_time + ":00";
                var postJob = Client.PostAsJsonAsync <DeliveryMan>("add-DeliveryMan", deliveryman);
                postJob.Wait();

                var postResult = postJob.Result;
                if (postResult.IsSuccessStatusCode)
                {
                    return(RedirectToAction("Index"));
                }
                ViewBag.message = "problème d'ajout";
                return(View());
            }
            catch
            {
                return(View());
            }
        }
예제 #28
0
        public IHttpActionResult Put([FromUri] int id, [FromBody] DeliveryMan del)
        {
            var item = context.DeliveryMans.Find(id);

            if (item == null)
            {
                return(StatusCode(HttpStatusCode.NoContent));
            }
            item.Id      = del.Id;
            item.User_Id = del.User_Id;
            item.Area    = del.Area;


            DeliveryMan man = new DeliveryMan();

            man.Id      = item.Id;
            man.User_Id = item.User_Id;
            man.Area    = item.Area;

            context.SaveChanges();
            return(Ok(man));
        }
예제 #29
0
        public static async Task GenerateToken(this DeliveryMan user, HttpRequestMessage request)
        {
            try
            {
                var parameters = new Dictionary <string, string> {
                    { "username", user.Email },
                    { "password", user.Password },
                    { "grant_type", "password" },
                    { "signintype", "1" }
                };

                var content  = new FormUrlEncodedContent(parameters);
                var baseUrl  = request.RequestUri.AbsoluteUri.Substring(0, request.RequestUri.AbsoluteUri.IndexOf("api"));
                var response = await client.PostAsync(baseUrl + "token", content);

                user.Token = await response.Content.ReadAsAsync <Token>();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #30
0
        public static async Task GenerateToken(this DeliveryMan user, HttpRequestMessage request)
        {
            try
            {
                var parameters = new Dictionary <string, string> {
                    { "username", user.Email },
                    { "password", user.Password },
                    { "grant_type", "password" },
                    { "signintype", "1" },
                    { "userid", user.Id.ToString() }
                };

                var content  = new FormUrlEncodedContent(parameters);
                var baseUrl  = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + "/";
                var response = await client.PostAsync(baseUrl + "token", content);

                user.Token = await response.Content.ReadAsAsync <Token>();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }