예제 #1
0
        public bool AddSurcharge(PalletForceOrder order, int extraTypeID, string userName)
        {
            EF.DataContext DB         = EF.DataContext.Current;
            VigoOrder      vo         = DB.VigoOrderSet.Include("VigoOrderExtras").FirstOrDefault(o => o.OrderId == order.OrderID);
            var            extraTypes = DB.ExtraTypeSet.ToList();

            if (vo.VigoOrderExtras.FirstOrDefault(e => e.ExtraType.ExtraTypeId == extraTypeID) == null)
            {
                var extraType = extraTypes.FirstOrDefault(et => et.ExtraTypeId == extraTypeID);
                if (extraType != null)
                {
                    VigoOrderExtra extra = new VigoOrderExtra();
                    extra.ExtraType = extraType;
                    vo.VigoOrderExtras.Add(extra);
                }
            }
            DB.SaveChanges();
            return(true);
        }
예제 #2
0
        public static IForm <MakeBooking> BuildForm()
        {
            async Task tamamlandi(IDialogContext context, MakeBooking state)
            {
                await context.PostAsync("Randevunuz Alınmıştır teşekkür ederiz.");

                var booking = new Booking()
                {
                    Name            = state.Name,
                    BookingDateTime = new DateTime(state.Date.Year, state.Date.Month, state.Date.Day, Convert.ToDateTime(state.Time).Hour, Convert.ToDateTime(state.Time).Minute, 0),
                    NumPeople       = state.NumPeople,
                    PhNum           = state.PhNum,
                };

                try
                {
                    using (EF.DataContext db = new EF.DataContext())
                    {
                        db.Bookings.Add(booking);

                        db.SaveChanges();
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }

            return(new FormBuilder <MakeBooking>()
                   .Message("Hoşgeldiniz.")

                   .Field(nameof(Date))
                   .Field(nameof(Time), active: IsTimeAdded, validate: ValidateTime)
                   .AddRemainingFields()
                   .Field(nameof(Name))
                   .Field(nameof(NumPeople))
                   .Field(nameof(PhNum), validate: ValidatePhNum)
                   .Confirm("Confirm booking on {Date:d} at {Time:t}? (Y/N)")
                   .OnCompletion(tamamlandi)
                   .Build());
        }
예제 #3
0
        public bool RemoveSurcharge(PalletForceOrder order, int extraTypeID, string userName)
        {
            try
            {
                EF.DataContext DB = EF.DataContext.Current;
                VigoOrder      vo = DB.VigoOrderSet.Include("VigoOrderExtras").Include("VigoOrderExtras.ExtraType").FirstOrDefault(o => o.OrderId == order.OrderID);

                if (vo.VigoOrderExtras.FirstOrDefault(e => e.ExtraType.ExtraTypeId == extraTypeID) != null)
                {
                    VigoOrderExtra extra = vo.VigoOrderExtras.FirstOrDefault(e => e.ExtraType.ExtraTypeId == extraTypeID);
                    vo.VigoOrderExtras.Remove(extra);
                    DB.DeleteObject(extra);
                }
                DB.SaveChanges();
                return(true);
            }
            catch (Exception ex)
            {
                throw;
            }
            return(true);
        }
예제 #4
0
        private static IForm <BookingQuery> BookingBuildForm()
        {
            async Task tamamlandi(IDialogContext context2, BookingQuery state)
            {
                await context2.PostAsync("Randevunuz Alınmıştır teşekkür ederiz.");

                var booking = new Booking()   //database yazdır
                {
                    Name            = state.Name,
                    BookingDateTime = new DateTime(state.Date.Year, state.Date.Month, state.Date.Day, Convert.ToDateTime(state.Time).Hour, Convert.ToDateTime(state.Time).Minute, 0),
                    NumPeople       = state.NumPeople,
                    PhNum           = state.PhNum,
                    Requests        = state.Requests,
                };

                try
                {
                    using (EF.DataContext db = new EF.DataContext())
                    {
                        db.Bookings.Add(booking);

                        db.SaveChanges();
                    }
                }
                catch (Exception)
                {
                    throw;
                }

                var randevutime = state.Time.Hour + ":" + state.Time.Minute;
                var reply       = context2.MakeMessage();

                ReceiptCard receiptCard = new ReceiptCard() //randevu bilgileri card
                {
                    Title = state.Name,
                    Facts = new List <Fact> {
                        new Fact("Telefon Num.", state.PhNum),
                        new Fact("Rezervasyon gününüz", Convert.ToString(state.Date)),
                        new Fact("Rezarvasyon saatiniz", Convert.ToString(randevutime)),
                        new Fact("Kişi Sayısı", Convert.ToString(state.NumPeople)),
                    }
                };

                Attachment plAttachment = receiptCard.ToAttachment();

                reply.Attachments.Add(plAttachment);

                await context2.PostAsync(reply);
            }

            return(new FormBuilder <BookingQuery>()   //senaryo sırası
                   .Message("Hoşgeldiniz.")

                   .Field(nameof(BookingQuery.Date))
                   .Field(nameof(BookingQuery.Time))
                   .AddRemainingFields()
                   .Field(nameof(BookingQuery.Name))
                   .Field(nameof(BookingQuery.NumPeople))
                   .Field(nameof(BookingQuery.PhNum))
                   .Confirm("Randevunuzu onaylıyor musunuz {Date:d} saat {Time:t}? (Y/N)")
                   .OnCompletion(tamamlandi)
                   .Build());
        }