public IHttpActionResult PostService(Services service)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var list = unitOfWork.Services.GetAll();

            foreach (var item in list)
            {
                if (item.Name == service.Name)
                {
                    return(BadRequest("Already is service with this name: " + service.Name));
                }
            }

            Services ser = new Services()
            {
                Name = service.Name, Email = service.Email, Logo = service.Logo, Owner = service.Owner, Available = false, Description = service.Description, Branches = new List <Branch>(), Vehicles = new List <Vehicle>(), Grade = 0, UsersGrade = new List <string>()
            };

            unitOfWork.Services.Add(ser);
            unitOfWork.Complete();

            NotificationsHub.NotifyAdmin("New service added and requires aproval!");

            return(CreatedAtRoute("DefaultApi", new { id = service.Id }, service));
        }
        public HttpResponseMessage UploadImage()
        {
            //Notify for websocket
            NotificationsHub.NotifyAdmin("New service is added...");

            string imageName   = null;
            var    httpRequest = HttpContext.Current.Request;
            //Upload Image
            var postedFile = httpRequest.Files["Image"];

            //Create custom filename
            imageName = new string(Path.GetFileNameWithoutExtension(postedFile.FileName).Take(10).ToArray()).Replace(" ", "-");
            imageName = imageName + DateTime.Now.ToString("yymmssfff") + Path.GetExtension(postedFile.FileName);
            var filePath = HttpContext.Current.Server.MapPath("~/Images/" + imageName);

            postedFile.SaveAs(filePath);

            Service service = new Service {
                Logo = imageName, Name = httpRequest["Name"], Email = httpRequest["Email"], Description = httpRequest["Description"]
            };

            unitOfWork.Services.Add(service);
            unitOfWork.Complete();

            return(Request.CreateResponse(HttpStatusCode.Created));
        }
Esempio n. 3
0
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            AppUser appUser = new AppUser()
            {
                FullName = model.FullName, Email = model.Email, BirthDate = model.BirthDate
            };
            var user = new RAIdentityUser()
            {
                UserName = model.Email, Email = model.Email, AppUser = appUser, PasswordHash = RAIdentityUser.HashPassword(model.Password)
            };

            IdentityResult result = await UserManager.CreateAsync(user, model.Password);


            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }
            UserManager.AddToRole(user.Id, "AppUser");
            NotificationsHub.NotifyAdmin("New User was registered");
            return(Ok());
        }
Esempio n. 4
0
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            NotificationsHub.NotifyAdmin("New user is added...");
            var appUser = new AppUser()
            {
                FullName = model.FullName, Email = model.Email, BirthDay = model.DateOfBirth,                          /*CreatingServicesBan = true,*/ /*IsRegistered = false*/
            };

            var user = new RAIdentityUser()
            {
                Id = model.Email, UserName = model.Email, Email = model.Email, AppUser = appUser
            };

            user.PasswordHash = RAIdentityUser.HashPassword(model.Password);
            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            await UserManager.AddToRoleAsync(model.Email, "AppUser");

            if (!result.Succeeded)
            {
                return(Content(System.Net.HttpStatusCode.BadRequest, "User already exists!"));
            }
            return(Ok());
        }
        public IHttpActionResult PostService(Service service)
        {
            lock (o)
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                service.Owner = User.Identity.Name;

                unitOfWork.Services.Add(service);
                unitOfWork.Complete();

                NotificationsHub.NotifyAdmin("New service added and requires aproval!");

                return(CreatedAtRoute("DefaultApi", new { id = service.Id }, service));
            }
        }
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var appUser = new AppUser()
            {
                BirthDay         = model.BirthDay,
                Email            = model.Email,
                FullName         = model.FullName,
                Activated        = false,
                PersonalDocument = null,
                Rents            = new List <Rent>()
            };

            var user = new RAIdentityUser()
            {
                AppUser      = appUser,
                PasswordHash = RAIdentityUser.HashPassword(model.Password),
                UserName     = model.Email,
                Email        = model.Email,
            };

            NotificationsHub.NotifyAdmin("New user added!");

            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            UserManager.AddToRole(user.Id, "AppUser");
            var errorMessage = result.Errors.ToList();

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            //userManager.Create(user);
            //userManager.AddToRole(user.Id, appUser);
            return(Ok());
        }
Esempio n. 7
0
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            foreach (AppUser u in unitOfWork.AppUser.GetAll())
            {
                if (u.Email == model.Email)
                {
                    return(Unauthorized());
                }
            }

            var appuser = new AppUser()
            {
                FullName = model.FullName, Email = model.Email, Birthday = model.DateOfBirth, Activated = false, PersonalDocument = null, Rents = new List <Rent>()
            };

            var user = new RAIdentityUser()
            {
                UserName = model.Email, Email = model.Email, AppUser = appuser, PasswordHash = RAIdentityUser.HashPassword(model.Password)
            };

            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(Content(System.Net.HttpStatusCode.BadRequest, "BadRequest!"));
            }

            UserManager.AddToRole(user.Id, "AppUser");

            NotificationsHub.NotifyAdmin("New user added!");

            return(Ok());
        }
Esempio n. 8
0
        public IHttpActionResult EditRentService()
        {
            var httpRequest = HttpContext.Current.Request;


            int         serviceId = Int32.Parse(httpRequest["RentServiceId"]);
            RentService service   = _unitOfWork.RentServices.Get(serviceId);

            if (service == null)
            {
                return(BadRequest("Rent Service does not exist"));
            }


            var jsonObj = JsonConvert.SerializeObject(service, Formatting.None, setting);
            var eTag    = ETagHelper.GetETag(Encoding.UTF8.GetBytes(jsonObj));



            if (HttpContext.Current.Request.Headers.Get(ETagHelper.MATCH_HEADER) == null || HttpContext.Current.Request.Headers[ETagHelper.MATCH_HEADER].Trim('"') != eTag)
            {
                HttpContext.Current.Response.Headers.Add("Access-Control-Expose-Headers", ETagHelper.ETAG_HEADER);
                HttpContext.Current.Response.Headers.Add(ETagHelper.ETAG_HEADER, JsonConvert.SerializeObject(eTag));
                return(new StatusCodeResult(HttpStatusCode.PreconditionFailed, new HttpRequestMessage()));
            }


            string imageName = null;



            service.Name          = httpRequest["Name"].Trim();
            service.Description   = httpRequest["Description"].Trim();
            service.Email         = httpRequest["Email"].Trim();
            service.Activated     = false;
            service.ServiceEdited = true;



            var postedFile = httpRequest.Files["Logo"];

            if (postedFile != null)
            {
                if (File.Exists(HttpRuntime.AppDomainAppPath + "Images\\" + service.Logo))
                {
                    File.Delete(HttpRuntime.AppDomainAppPath + "Images\\" + service.Logo);
                }

                imageName = new string(Path.GetFileNameWithoutExtension(postedFile.FileName).Take(10).ToArray()).Replace(" ", "-");
                imageName = imageName + DateTime.Now.ToString("yymmssfff") + Path.GetExtension(postedFile.FileName);
                var filePath = HttpContext.Current.Server.MapPath("~/Images/" + imageName);
                postedFile.SaveAs(filePath);
                service.Logo = imageName;
            }

            try
            {
                _unitOfWork.RentServices.Update(service);
                _unitOfWork.Complete();
            }
            catch
            {
                return(BadRequest("Rent Service could not be edited"));
            }
            NotificationsHub.NotifyAdmin("New Rent Service was edited");

            jsonObj = JsonConvert.SerializeObject(service, Formatting.None, setting);
            eTag    = ETagHelper.GetETag(Encoding.UTF8.GetBytes(jsonObj));
            HttpContext.Current.Response.Headers.Add("Access-Control-Expose-Headers", ETagHelper.ETAG_HEADER);
            HttpContext.Current.Response.Headers.Add(ETagHelper.ETAG_HEADER, JsonConvert.SerializeObject(eTag));

            return(Created("Rent Service was edited", service));
        }
Esempio n. 9
0
        public IHttpActionResult AddRentService()
        {
            RADBContext db = new RADBContext();
            AppUser     appUser;

            try
            {
                var username = User.Identity.Name;

                var user = _unitOfWork.AppUsers.Find(u => u.Email == username).FirstOrDefault();
                if (user == null)
                {
                    return(BadRequest("Data could not be retrieved, try to relog."));
                }
                appUser = user;
            }
            catch
            {
                return(BadRequest("User not found, try to relog"));
            }

            if (appUser == null)
            {
                return(BadRequest("Try to relog"));
            }

            if (appUser.Activated == false)
            {
                return(BadRequest("You can't add new Rent Services right now"));
            }

            var httpRequest = HttpContext.Current.Request;

            string imageName = null;



            RentService service = new RentService();

            service.Name          = httpRequest["Name"].Trim();
            service.Description   = httpRequest["Description"].Trim();
            service.Email         = httpRequest["Email"].Trim();
            service.Activated     = false;
            service.ServiceEdited = true;
            service.UserId        = appUser.UserId;


            if (service.Logo == null || service.Logo == "")
            {
                var postedFile = httpRequest.Files["Logo"];
                imageName = new string(Path.GetFileNameWithoutExtension(postedFile.FileName).Take(10).ToArray()).Replace(" ", "-");
                imageName = imageName + DateTime.Now.ToString("yymmssfff") + Path.GetExtension(postedFile.FileName);
                var filePath = HttpContext.Current.Server.MapPath("~/Images/" + imageName);
                postedFile.SaveAs(filePath);
                service.Logo = imageName;
            }

            try
            {
                _unitOfWork.RentServices.Add(service);
                _unitOfWork.Complete();

                appUser.RentServices.Add(service);
                _unitOfWork.AppUsers.Update(appUser);
                _unitOfWork.Complete();
            }
            catch
            {
                return(BadRequest("Rent Service could not be added"));
            }
            NotificationsHub.NotifyAdmin("New Rent Service was added");

            return(Created("Rent Service was created", service));
        }