Exemple #1
0
        // GET api/<controller>
        public List <Movie> Get()
        {
            movieDBConnection db  = new movieDBConnection();
            DateTime          now = DateTime.Now;

            return(db.Movies.Where(a => a.PlayTimes.Any(b => b.play >= now) == true).ToList());
        }
Exemple #2
0
        static public bool is_Valid_projc_time(DateTime projectionTime, long langthTicks)
        {
            movieDBConnection db = new movieDBConnection();

            List <PlayTime> closestTime = db.PlayTimes.OrderBy(t => t.play).ToList();

            if (closestTime.Count == 0)
            {
                return(true);
            }

            PlayTime close = closestTime[0];
            long     min   = Math.Abs((close.play - projectionTime).Ticks);

            foreach (PlayTime x in closestTime)
            {
                if (Math.Abs((x.play - projectionTime).Ticks) < min)
                {
                    min   = Math.Abs((x.play - projectionTime).Ticks);
                    close = x;
                }
            }

            long duration = (close.play < projectionTime) ? new TimeSpan(0, close.Movie.langth, 0).Ticks : langthTicks;

            if (Math.Abs((close.play - projectionTime).Ticks) < duration)
            {
                return(false);
            }
            return(true);
        }
Exemple #3
0
        // PUT: api/Costumer/5
        public HttpResponseMessage Put() //add customer
        {
            movieDBConnection db = new movieDBConnection();
            // init Customer
            string   st = HttpContext.Current.Request.Params["customer"];
            Customer c;

            try
            {
                c = JsonConvert.DeserializeObject <Customer>(st);
            }
            catch
            {
                return(Request.CreateErrorResponse(HttpStatusCode.Conflict, "חסרים נתונים בלקוח"));
            }

            Customer ct = db.Customers.SingleOrDefault(x => x.id == c.id);

            if (ct != null) // user in db
            {
                return(Request.CreateErrorResponse(HttpStatusCode.Conflict, "קיים לקוח במערכת עם ת.ז זהה"));
            }
            else
            {
                db.Customers.Add(c);
                db.SaveChanges();
                return(Request.CreateResponse(HttpStatusCode.OK, "הלקוח נוסף בהצלחה"));
            }
        }
Exemple #4
0
        // GET api/<controller>/5
        public List <CustomerBuyTicket> Get(string id) //return all ticket of movie for id by order
        {
            movieDBConnection        db  = new movieDBConnection();
            List <CustomerBuyTicket> cbt = db.CustomerBuyTickets
                                           .Where(x => x.customer_id == id)
                                           .OrderByDescending(a => a.PlayTime.play).ToList();

            return(cbt);
        }
Exemple #5
0
        // PUT api/<controller>/5
        public CustomerBuyTicket Put(CustomerBuyTicket cbt)
        {
            movieDBConnection db = new movieDBConnection();

            db.CustomerBuyTickets.Add(cbt);
            PlayTime p = db.PlayTimes.SingleOrDefault(x => x.id == cbt.playTime_id);

            p.availble_sits = p.availble_sits - (int)cbt.amount;
            db.SaveChanges();
            return(cbt);
        }
Exemple #6
0
        public Customer isValidCustomer(String id, String pass)
        {
            movieDBConnection db = new movieDBConnection();
            Customer          ct = db.Customers.SingleOrDefault(x => x.id == id);

            if (ct != null &&
                pass.Equals(ct.pass.Replace(" ", string.Empty)))
            {
                return(ct);
            }
            return(null);
        }
Exemple #7
0
        // DELETE api/<controller>/5
        public void Delete(int id)
        {
            movieDBConnection db  = new movieDBConnection();
            CustomerBuyTicket cbt = db.CustomerBuyTickets.SingleOrDefault(x => x.id == id);

            db.CustomerBuyTickets.Remove(cbt);

            PlayTime p = db.PlayTimes.SingleOrDefault(x => x.id == cbt.playTime_id);

            p.availble_sits = p.availble_sits + (int)cbt.amount;

            db.SaveChanges();
        }
Exemple #8
0
        public List <PlayTime> Get(int id)
        {
            movieDBConnection db = new movieDBConnection();

            return(db.PlayTimes.Where(x => x.movie_id == id).ToList());
        }
Exemple #9
0
        // PUT api/<controller>/5
        public HttpResponseMessage Put()
        {
            movieDBConnection db = new movieDBConnection();
            // init Movie
            string st = HttpContext.Current.Request.Params["movie"];
            Movie  mv;

            try
            {
                mv     = JsonConvert.DeserializeObject <Movie>(st);
                mv.img = "first_img.JPG";
            }
            catch
            {
                return(Request.CreateErrorResponse(HttpStatusCode.Conflict, "חסרים נתונים בסרט"));
            }

            // init playTimes -
            List <PlayTime> playTList = new List <PlayTime>();
            int             numOfProj = Convert.ToInt32(HttpContext.Current.Request.Params["numOfProj"]);

            for (int i = 0; i < numOfProj; i++)
            {
                PlayTime pt = new PlayTime();
                pt.movie_id = mv.id;
                DateTime temp;
                //check valid date string
                if (!DateTime.TryParse(HttpContext.Current.Request.Params["projection" + i], out temp))
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.Conflict, "זמן הקרנה לא חוקי"));
                }
                pt.play          = temp;
                pt.total_sits    = Convert.ToInt32(HttpContext.Current.Request.Params["sits"]);
                pt.availble_sits = pt.total_sits;

                // check if projection time is valid
                if (!PlayTimeController.is_Valid_projc_time(pt.play, new TimeSpan(0, mv.langth, 0).Ticks))
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.Conflict, "זמן ההקרנה המבוקש תפוס"));
                }

                playTList.Add(pt);
            }
            mv.PlayTimes = playTList;


            // save on dataBase
            try
            {
                db.Movies.Add(mv);
                db.SaveChanges();
            }
            catch
            {
                return(Request.CreateErrorResponse(HttpStatusCode.Conflict, "בעיה בגישה למס''ד נתונים \n פעולה לא התבצעה"));
            }

            // handle Image
            HttpPostedFile img = HttpContext.Current.Request.Files["img"];

            if (img != null)
            {
                try
                {
                    mv.img = mv.id + Path.GetExtension(img.FileName);
                    db.SaveChanges();

                    // save Image on server
                    img.SaveAs(HttpContext.Current.Server.MapPath("~/images/") + mv.img);
                }
                catch
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.Conflict, "בעיה בשמירת תמונה \n לא נשמרה תמונה"));
                }
            }

            return(Request.CreateResponse(HttpStatusCode.OK, "הסרט נוסף בהצלחה"));
        }