public IHttpActionResult PutPriceFinal(int id, PriceFinal priceFinal)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != priceFinal.ID)
            {
                return(BadRequest($"PriceFinal with id: {id} doesnt exist"));
            }



            try
            {
                unitOfWork.PriceFinal.Update(priceFinal);
                unitOfWork.Complete();
            }
            catch (DbUpdateConcurrencyException e)
            {
                if (!PriceFinalExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    return(BadRequest(e.Message));
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult GetPriceFinal(int id)
        {
            PriceFinal priceFinal = unitOfWork.PriceFinal.Get(id);

            if (priceFinal == null)
            {
                return(NotFound());
            }

            return(Ok(priceFinal));
        }
        public IHttpActionResult DeletePriceFinal(int id)
        {
            PriceFinal priceFinal = unitOfWork.PriceFinal.Get(id);

            if (priceFinal == null)
            {
                return(NotFound());
            }

            try
            {
                unitOfWork.PriceFinal.Remove(priceFinal);
                unitOfWork.Complete();
            }
            catch
            {
                throw;
            }

            return(Ok(priceFinal));
        }
Beispiel #4
0
        public IHttpActionResult Buy(string karta, PayPalPaymentDetails paymentDetails)
        {
            var             userId = User.Identity.GetUserId();
            ApplicationUser user   = new ApplicationUser();
            UserType        userType;

            if (userId == null)
            {
                user     = this.unitOfWork.User.Get("appu");
                userType = this.unitOfWork.UserType.Get(1);
            }
            else
            {
                user = this.unitOfWork.User.Get(userId);

                userType = this.unitOfWork.UserType.Get((int)user.UserTypeID);
            }



            Pricelist pricelist = unitOfWork.Pricelist.Find(x => x.To == null).FirstOrDefault();

            if (pricelist == null)
            {
                return(BadRequest("trenutno ne postoji cenovnik"));
            }

            PriceFinal priceFinal = unitOfWork.PriceFinal.GetAll().Where(z => z.PricelistID == pricelist.ID).FirstOrDefault();

            if (priceFinal == null)
            {
                return(BadRequest("trenutno ne postoji cena trenutni cenovnik"));
            }

            DateTime dateTimeNow = DateTime.UtcNow;

            var    expires = ExpiresAt(karta);
            Ticket ticket;

            if (userId == null)
            {
                ticket = new Ticket()
                {
                    BoughtAt             = dateTimeNow,
                    PayPalPaymentDetails = paymentDetails,
                    TicketType           = karta,
                    UserID   = "appu",
                    User     = user,
                    PriceRSD = priceFinal.Price * 1,
                    Expires  = expires,
                    //PriceFinal = priceFinal
                };
            }
            else
            {
                ticket = new Ticket()
                {
                    BoughtAt             = dateTimeNow,
                    PayPalPaymentDetails = paymentDetails,
                    PriceRSD             = priceFinal.Price * userType.Coefficient,
                    TicketType           = karta,
                    UserID  = userId,
                    User    = user,
                    Expires = expires,
                    //PriceFinal = priceFinal
                };

                if (user.Status == null)
                {
                    ticket.PriceRSD = priceFinal.Price * 1;
                }
                //var str = $"Bought at:{ticket.BoughtAt}\t Price in RSD:{ticket.PriceRSD}\t Ticket type:{ticket.TicketType}\t UserID:{ticket.UserID}\n\n Thank You for using our service.";
                //SendEMailHelper.Send(user.Email, "Ticket details from transport service",
                //    str);
            }

            unitOfWork.Ticket.Add(ticket);
            //unitOfWork.Ticket.att
            unitOfWork.Complete();

            PriceFinal p = new PriceFinal()
            {
                Price       = userType.Coefficient * priceFinal.Price,
                PricelistID = pricelist.ID,
                Pricelist   = pricelist,
                Ticket      = ticket
            };


            unitOfWork.PriceFinal.Add(p);
            unitOfWork.Complete();

            ticket.PriceFinal = p;

            unitOfWork.Ticket.Update(ticket);
            unitOfWork.Complete();

            return(Ok(ticket));
        }