예제 #1
0
        private void Controller()
        {
            int menu;

            using (var db = new ProgramContext())
            {
                menu = SelectOption();
                do
                {
                    switch (menu)
                    {
                    case 1:
                        db.Products.Add(Product());
                        db.SaveChanges();
                        break;

                    case 2:
                        db.Customers.Add(Client());
                        db.SaveChanges();
                        break;

                    case 3:
                        db.Manufacturers.Add(Manufacturer());
                        db.SaveChanges();
                        break;

                    case 4:
                        ShowProducts();
                        break;

                    case 5:
                        ShowCustomers();
                        break;

                    case 6:
                        ShowManufacturers();
                        break;

                    case 7:
                        Environment.Exit(0);
                        break;

                    default:
                        Console.WriteLine("Key error, introduce 1/2/3/4/5/6/7");
                        break;
                    }
                    menu = SelectOption();
                } while (menu != 7);
            }
        }
예제 #2
0
        public IActionResult AddTestToDb()
        {
            User test = new User()
            {
                ID       = 0,
                Name     = "Liphi",
                Password = "******",
                Role     = "Admin",
                Email    = "*****@*****.**"
            };

            _db.Users.Add(test);

            Token testToken = new Token()
            {
                ID              = "dekdieweie238h2ubnono9dh2303nd2i3nr",
                Created         = DateTime.Now,
                ExpiresOn       = DateTime.Now.AddYears(10),
                UploadImg       = true,
                UploadFiles     = true,
                GenTokens       = true,
                CustomUrl       = true,
                UseUrlShortener = true,
                Owner           = test
            };

            _db.Tokens.Add(testToken);
            _db.SaveChanges();
            return(Ok());
        }
예제 #3
0
파일: UserController.cs 프로젝트: 33kk/woah
        public async Task <IActionResult> SignIn([FromForm] string userName, [FromForm] string password)
        {
            User user = _db.Users.FirstOrDefault(x => x.Name == userName && x.Password == password);

            if (user == default)
            {
                return(NotFound());
            }

            Token sessionToken = TokenGenerator.GenerateToken(_db);

            sessionToken.Name = "SessioToken";
            if (user.Role == "admin" || user.Role == "moderator")
            {
                sessionToken.CustomUrl = true;
            }
            sessionToken.UseUrlShortener = true;
            sessionToken.GenTokens       = true;
            sessionToken.UploadFiles     = true;
            sessionToken.UploadImg       = true;
            sessionToken.ViewUrls        = true;

            sessionToken.ExpiresOn = DateTime.Now.AddDays(1);
            sessionToken.Owner     = user;

            _db.Tokens.Add(sessionToken);
            _db.SaveChanges();
            CookieOptions authOptions = new CookieOptions();

            authOptions.Secure  = true;
            authOptions.Expires = DateTime.Now.AddDays(1);
            Response.Cookies.Append("SessionToken", sessionToken.ID, authOptions);
            return(Ok());
        }
예제 #4
0
        public ActionResult Create(FormCollection formCollection)
        {
            if (Session["Email"] != null)
            {
                Programs       programs = new Programs();
                ProgramContext context  = new ProgramContext();

                programs.Name = formCollection["Name"];
                programs.Type = formCollection["Type"];

                context.Programs.Add(programs);
                context.SaveChanges();

                return(RedirectToAction("Index"));
            }
            return(RedirectToAction("Index", "Home"));
        }
예제 #5
0
        public void UpdatePackages()
        {
            var ser = new XmlSerializer(typeof(XMLClasses.feed));

            var link = "http://chocolatey.org/api/v2/Packages";

            using (var db = new ProgramContext())
            {
                while (link != null && link.Length > 15)
                {
                    XMLClasses.feed mainfeed = ReadFromMainfeed(link, ser);

                    foreach (var item in mainfeed.Items.Where(x => x.GetType() == typeof(XMLClasses.feedEntry)))
                    {
                        var val = item as XMLClasses.feedEntry;

                        if (val != null)
                        {
                            var queryProgram = GetStoredProgramPackagesFromDatabase(db, val);

                            var queryProgramVersion = GetStoredProgramPackageVersionsFromDatabase(db, val);

                            if (!queryProgram.Any())
                            {
                                AddProgramPackageToDatabase(val, db);
                            }
                            else if (!queryProgramVersion.Any())
                            {
                                AddProgramPackageVersionToDatabase(queryProgram, db, val);
                            }

                            db.SaveChanges();
                        }
                    }

                    var feedLink = mainfeed.Items.Last(x => x.GetType() == typeof(XMLClasses.feedLink)) as XMLClasses.feedLink;

                    link = feedLink != null ? feedLink.href : null;
                }
            }
        }
예제 #6
0
 public void AddInRoutes()
 {
     using (ProgramContext context = new ProgramContext())
     {
         Car Car = new Car()
         {
             CarName = "УАЗ", AverageSpeed = 100, LiftingCapacity = 20, PricePerKilometer = 80
         };
         City CityStart = new City()
         {
             Name = "Калуга", XCoordinate = 0, YCoordinate = 0
         };
         City CityFinish = new City()
         {
             Name = "Москва", XCoordinate = 2000, YCoordinate = 4000
         };
         Route q = new Route(Car, CityStart, CityFinish);
         context.Routes.Add(q);
         context.SaveChanges();
     }
 }
예제 #7
0
        public ActionResult Delete(int?id, FormCollection formCollection)
        {
            if (Session["Email"] != null)
            {
                if (id != null)
                {
                    ProgramContext context = new ProgramContext();
                    Programs       program = context.Programs.Single(pro => pro.Id == id);

                    context.Programs.Remove(program);

                    context.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(RedirectToAction("Index", "Program"));
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
예제 #8
0
        public ActionResult Edit(FormCollection formCollection, int?id)
        {
            if (Session["Email"] != null)
            {
                if (id != null)
                {
                    ProgramContext context = new ProgramContext();
                    Programs       program = context.Programs.Single(pro => pro.Id == id);

                    program.Name = formCollection["Name"];
                    program.Type = formCollection["Type"];

                    context.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(RedirectToAction("Index", "Program"));
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
예제 #9
0
        protected override async Task <AuthenticateResult> HandleAuthenticateAsync()
        {
            string tokenString = Request.Headers["Token"];

            if (string.IsNullOrEmpty(tokenString))
            {
                tokenString = Request.Cookies["SessionToken"];
                if (string.IsNullOrEmpty(tokenString))
                {
                    return(AuthenticateResult.NoResult());
                }
            }
            using (ProgramContext _db = new ProgramContext())
            {
                Token token = _db.Tokens.FirstOrDefault(x => x.ID == tokenString);
                if (token == default)
                {
                    return(AuthenticateResult.Fail("Bad Token"));
                }
                if (token.ExpiresOn < System.DateTime.Now)
                {
                    _db.Tokens.Remove(token);
                    _db.SaveChanges();
                    return(AuthenticateResult.Fail("Bad Token"));
                }
                var claims = new List <Claim>
                {
                    new Claim("Token", token.ID),
                };

                var identity  = new ClaimsIdentity(claims, Scheme.Name);
                var principal = new System.Security.Principal.GenericPrincipal(identity, null);
                var ticket    = new AuthenticationTicket(principal, Scheme.Name);
                return(AuthenticateResult.Success(ticket));
            }
        }
예제 #10
0
        private static void NewCarRent()
        {
            try
            {
                Console.WriteLine("CustomerID:");
                var CustomerID = Convert.ToInt32(Console.ReadLine());

                Console.WriteLine("Rental location:");
                var Location = Console.ReadLine();

                Console.WriteLine("Start date:");
                var StartDate = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy", CultureInfo.InvariantCulture);

                Console.WriteLine("Finish date:");
                var FinishDate = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy", CultureInfo.InvariantCulture);

                Console.WriteLine("CarID:");
                var CarID = Convert.ToInt32(Console.ReadLine());

                Console.WriteLine("Coupon code(press 0 for no coupon code):");
                var CouponCode = Console.ReadLine();


                var DateCompare = DateTime
                                  .Compare(StartDate, FinishDate);

                var CustomerIDValidator = _context.Customers
                                          .Any(x => x.CustomerID == CustomerID);
                var objCustomer = _context.Customers.Find(CustomerID);

                var CarIDValidator = _context.Cars
                                     .Any(x => x.CarID == CarID);
                var objCar = _context.Cars.Find(CarID);

                var CarLocationValidator = _context.Cars
                                           .Where(x => x.CarID == CarID)
                                           .FirstOrDefault();

                var CustomerLocationValidator = _context.Customers
                                                .Any(x => x.CustomerLocation == Location);

                var CouponValidator = _context.Coupons
                                      .Any(x => x.CouponCode == CouponCode);
                var objCoupon = _context.Coupons.Find(CouponCode);

                if (CarLocationValidator.CarLocation != Location)
                {
                    throw new Exception("Car Unavailable in your location!");
                }


                if (DateCompare > 0)
                {
                    Console.WriteLine("");
                    Console.WriteLine("Start Date: {0} is greater than Finish Date: {1}!", StartDate.ToString("dd/MM/yyyy"), FinishDate.ToString("dd/MM/yyyy"));
                    Console.WriteLine("Press any key to return.");
                    Console.ReadKey();
                    Console.Clear();
                    NewCarRent();
                }

                if (CustomerLocationValidator == false)
                {
                    throw new Exception("Invalid Location!");
                }

                var AvailableStatus = _context.Cars
                                      .Where(c => c.CarID == CarID)
                                      .FirstOrDefault();

                if (AvailableStatus.Available == false)
                {
                    throw new Exception("Car Unavailable!");
                }


                var UpdateAvailable = _context.Cars
                                      .Where(c => c.CarID == CarID)
                                      .FirstOrDefault();
                UpdateAvailable.Available = false;
                _context.SaveChanges();


                var InsertReservation = new Reservations()
                {
                    Location       = Location,
                    StartDate      = StartDate,
                    FinishDate     = FinishDate,
                    CouponCode     = objCoupon.CouponCode,
                    CarID          = objCar.CarID,
                    CustomerID     = objCustomer.CustomerID,
                    ReservStatusID = 1,
                };

                _context.Reservations
                .Add(InsertReservation);
                _context.SaveChanges();


                Console.WriteLine("Rent Registered.");
                Console.WriteLine("Press any key to return to main menu.");
                Console.ReadKey();
                Console.Clear();
                Menu();
            }
            catch (Exception ex)
            {
                Console.WriteLine("");
                Console.WriteLine(ex.Message);
                Console.WriteLine("Press any key to return.");
                Console.ReadKey();
                Console.Clear();
                NewCarRent();
            }
        }
예제 #11
0
        public IActionResult ShortenUrl([FromQuery] string fullurl, [FromQuery] string shortUrl)
        {
            if (string.IsNullOrEmpty(fullurl))
            {
                return(BadRequest("Missing parameter: full url"));
            }
            fullurl = fullurl.ToLower();
            if (!CheckUrl(fullurl))
            {
                fullurl = "http://" + fullurl;
                if (!CheckUrl(fullurl))
                {
                    return(BadRequest("Bad full url"));
                }
            }
            Url url      = _db.Urls.FirstOrDefault(x => x.Content == fullurl);
            var response = new Dictionary <string, string>();;

            if (url != default)
            {
                response.Add("ShortenUrl", Program.Domain + "/" + url.ID);
                return(new JsonResult(response));
            }
            string token   = User.Claims.FirstOrDefault(y => y.Type == "Token").Value;
            Token  tokendb = _db.Tokens
                             .FirstOrDefault(x =>
                                             x.ID == token);

            if (!tokendb.UseUrlShortener)
            {
                return(Forbid("Missing scope: UseUrlShortener"));
            }
            if (string.IsNullOrEmpty(shortUrl) && !tokendb.CustomUrl)
            {
                return(Forbid("Missing scope: CustomUrl"));
            }

            if (!string.IsNullOrEmpty(shortUrl))
            {
                try
                {
                    url = GenCustomUrl(shortUrl);
                }
                catch (ShortenUrlAlreadyExistsException)
                {
                    return(Conflict("Shorten Url Already Exists"));
                }
                catch (BadShortenUrlException)
                {
                    return(BadRequest("Bad short url"));
                }
            }
            else
            {
                url = GenRandomUrl();
            }
            url.Creator     = tokendb.Owner;
            url.ContentType = "text/redirect";
            url.Content     = fullurl;
            url.TimeUsed    = 0;
            _db.Urls.Add(url);
            tokendb.Owner.Urls.Append(url);
            _db.SaveChanges();

            response.Add("ShortenUrl", Program.Domain + "/" + url.ID);
            return(new JsonResult(response));
        }