public static IQueryable <SpecialOffer> CurrentSpecialOffers(IFunctionalContainer container)
 {
     return(from obj in container.Instances <SpecialOffer>()
            where obj.StartDate <= DateTime.Now &&
            obj.EndDate >= new DateTime(2004, 6, 1)
            select obj);
 }
        public static SpecialOfferProduct AssociateSpecialOfferWithProduct
            ([ContributedAction("Special Offers")] SpecialOffer offer,
            [ContributedAction("Special Offers")] Product product,
            IFunctionalContainer container)
        {
            //First check if association already exists
            IQueryable <SpecialOfferProduct> query = from sop in container.Instances <SpecialOfferProduct>()
                                                     where sop.SpecialOfferID == offer.SpecialOfferID &&
                                                     sop.ProductID == product.ProductID
                                                     select sop;

            if (query.Count() != 0)
            {
                var t = Container.NewTitleBuilder();
                t.Append(offer).Append(" is already associated with").Append(product);
                WarnUser(t.ToString());
                return(null);
            }
            var newSop = new SpecialOfferProduct();

            newSop.SpecialOffer = offer;
            newSop.Product      = product;
            //product.SpecialOfferProduct.Add(newSop);
            Persist(ref newSop);
            return(newSop);
        }
        //To test a ViewModelEdit
        public EmailTemplate CreateEmail(IFunctionalContainer container)
        {
            var email = ViewModelHelper.NewViewModel <EmailTemplate>(container);

            email.Status = EmailStatus.New;
            return(email);
        }
        public StoreSalesInfo ReviewSalesResponsibility(IFunctionalContainer container)
        {
            var ssi = ViewModelHelper.NewViewModel <StoreSalesInfo>(container);

            ssi.PopulateUsingKeys(new string[] { AccountNumber, false.ToString() }, container);
            return(ssi);
        }
Beispiel #5
0
 public static QueryResultList FindEmployeeByName(
     [Optionally] string firstName,
     string lastName,
     IFunctionalContainer container)
 {
     return(new QueryResultList(QueryEmployeesByName(firstName, lastName, container)));
 }
        public SalesOrderHeader NewOrder(IFunctionalContainer container)
        {
            var order = OrderContributedActions.CreateNewOrder(Root, true, container);

            Container.Persist(ref order);
            return(order);
        }
Beispiel #7
0
        //This method is to test use of nullable booleans
        public static QueryResultList ListEmployees(bool?current, //mandatory
                                                    [Optionally] bool?married,
                                                    [DefaultValue(false)] bool?salaried,
                                                    [Optionally][DefaultValue(true)] bool?olderThan50,
                                                    IFunctionalContainer container)
        {
            var emps = container.Instances <Employee>();

            emps = emps.Where(e => e.Current == current.Value);
            if (married != null)
            {
                string value = married.Value ? "M" : "S";
                emps = emps.Where(e => e.MaritalStatus == value);
            }
            emps = emps.Where(e => e.Salaried == salaried.Value);
            if (olderThan50 != null)
            {
                var date = DateTime.Today.AddYears(-50); //Not an exact calculation!
                if (olderThan50.Value)
                {
                    emps = emps.Where(e => e.DateOfBirth != null && e.DateOfBirth < date);
                }
                else
                {
                    emps = emps.Where(e => e.DateOfBirth != null && e.DateOfBirth > date);
                }
            }
            return(new QueryResultList(emps));
        }
 public static IList <ProductSubcategory> Default0ListProductsBySubCategories(IFunctionalContainer container)
 {
     return(new List <ProductSubcategory> {
         container.Instances <ProductSubcategory>().Single(psc => psc.Name == "Mountain Bikes"),
         container.Instances <ProductSubcategory>().Single(psc => psc.Name == "Touring Bikes")
     });
 }
Beispiel #9
0
        public static SalesOrderHeader CreateNewOrder([ContributedAction(subMenu)] Customer customer,
                                                      [Optionally] bool copyHeaderFromLastOrder,
                                                      IFunctionalContainer container)
        {
            var newOrder = new SalesOrderHeader();

            newOrder.Customer = customer;

            if (copyHeaderFromLastOrder)
            {
                SalesOrderHeader last = QueryLastOrder(customer, container).FirstOrDefault();
                if (last != null)
                {
                    newOrder.BillingAddress  = last.BillingAddress;
                    newOrder.ShippingAddress = last.ShippingAddress;
                    newOrder.CreditCard      = last.CreditCard;
                    newOrder.ShipMethod      = last.ShipMethod;
                    newOrder.AccountNumber   = last.AccountNumber;
                }
            }
            else
            {
                newOrder.BillingAddress  = PersonRepository.AddressesFor(customer.BusinessEntity(), container, "Billing").FirstOrDefault();
                newOrder.ShippingAddress = PersonRepository.AddressesFor(customer.BusinessEntity(), container, "Shipping").FirstOrDefault();
            }
            return(newOrder);
        }
 public static IQueryable <Vendor> AllVendorsWithWebAddresses(IFunctionalContainer container)
 {
     return(from obj in container.Instances <Vendor>()
            where obj.PurchasingWebServiceURL != null
            orderby obj.Name
            select obj);
 }
        public static SalesOrderHeader CheckOut(IFunctionalContainer container)
        {
            var cust  = GetCustomerForUser();
            var order = OrderContributedActions.CreateNewOrder(cust, true, container);

            order.AddItemsFromCart = true;
            return(order);
        }
        public static IQueryable <ShoppingCartItem> Cart(IFunctionalContainer container)
        {
            string id = GetShoppingCartIDForUser();

            return(from sci in container.Instances <ShoppingCartItem>()
                   where sci.ShoppingCartID == id
                   select sci);
        }
Beispiel #13
0
 //This method is to test use of non-nullable booleans
 public static QueryResultList ListEmployees2(bool current,
                                              [Optionally] bool married,
                                              [DefaultValue(false)] bool salaried,
                                              [DefaultValue(true)] bool olderThan50,
                                              IFunctionalContainer container)
 {
     return(ListEmployees(current, married, salaried, olderThan50, container));
 }
 public void Persisted(IFunctionalContainer container)
 {
     if (AddItemsFromCart)
     {
         ShoppingCartRepository.AddAllItemsInCartToOrder(this, container);
         AddItemsFromCart = false;
     }
 }
        public static SpecialOffer NoDiscount(IFunctionalContainer container)
        {
            IQueryable <SpecialOffer> query = from obj in container.Instances <SpecialOffer>()
                                              where obj.SpecialOfferID == 1
                                              select obj;

            return(query.FirstOrDefault());
        }
        public void PopulateUsingKeys(string[] instanceId, IFunctionalContainer container)
        {
            int   p = int.Parse(instanceId.First());
            short n = short.Parse(instanceId.Skip(1).First());

            Product = container.Instances <Product>().Single(c => c.ProductID == p);
            Number  = n;
        }
        public static QueryResultSingle FindProductByNumber(string number, IFunctionalContainer container)
        {
            IQueryable <Product> query = from obj in container.Instances <Product>()
                                         where obj.ProductNumber == number
                                         select obj;

            return(SingleObjectWarnIfNoMatch(query));
        }
 public IQueryable <ShoppingCartItem> RemoveItems(
     IEnumerable <ShoppingCartItem> items,
     IFunctionalContainer container
     )
 {
     ShoppingCartRepository.RemoveItems(items);
     return(ShoppingCartRepository.Cart(container));
 }
Beispiel #19
0
        public static List <Customer> RandomCustomers(IFunctionalContainer container)
        {
            var list = new List <Customer>();

            list.Add(RandomIndividual(container));
            list.Add(RandomStore(container));
            return(list);
        }
        internal static Person RandomPerson(IFunctionalContainer container)
        {
            //TODO: Provide proper Function implementation of Random
            int random = new Random().Next(container.Instances <Person>().Count());

            //The OrderBy(...) doesn't do anything, but is a necessary precursor to using .Skip
            //which in turn is needed because LINQ to Entities doesn't support .ElementAt(x)
            return(container.Instances <Person>().OrderBy(n => "").Skip(random).FirstOrDefault());
        }
#pragma warning restore 612,618
        public void AddNewDetails(
            Product product,
            [DefaultValue((short)1)] short quantity,
            IFunctionalContainer container)
        {
            var detail = AddNewDetail(product, quantity, container);

            Container.Persist(ref detail);
        }
 public void AddNewSalesReasonsByCategories(
     IEnumerable <SalesReasonCategories> reasonCategories,
     IFunctionalContainer container)
 {
     foreach (SalesReasonCategories rc in reasonCategories)
     {
         AddNewSalesReasonsByCategory(rc, container);
     }
 }
Beispiel #23
0
        /// <summary>
        ///     Returns a random instance from the set of all instance of type T
        /// </summary>
        protected static QueryResultSingle Random <T>(IFunctionalContainer container) where T : class
        {
            IQueryable <T> query  = container.Instances <T>();
            int            random = new Random().Next(query.Count());

            //The OrderBy(...) doesn't do anything, but is a necessary precursor to using .Skip
            //which in turn is needed because LINQ to Entities doesn't support .ElementAt(x)
            return(new QueryResultSingle(query.OrderBy(n => "").Skip(random).FirstOrDefault()));
        }
Beispiel #24
0
        public static Customer RandomIndividual(IFunctionalContainer container)
        {
            var allIndividuals = IndividualCustomers(container);
            int random         = new Random().Next(allIndividuals.Count());

            //The OrderBy(...) doesn't do anything, but is a necessary precursor to using .Skip
            //which in turn is needed because LINQ to Entities doesn't support .ElementAt(x)
            return(allIndividuals.OrderBy(n => "").Skip(random).FirstOrDefault());
        }
Beispiel #25
0
 public virtual bool HideLoginID(IFunctionalContainer container)
 {
     if (Container.IsPersistent(this))
     {
         Employee userAsEmployee = EmployeeRepository.CurrentUserAsEmployee(container);
         return(userAsEmployee != null ? userAsEmployee.LoginID != LoginID : true);
     }
     return(false);
 }
Beispiel #26
0
        public IQueryable <Employee> ColleaguesInSameDept(
            IFunctionalContainer container)
        {
            var allCurrent = container.Instances <EmployeeDepartmentHistory>().Where(edh => edh.EndDate == null);
            var thisId     = this.BusinessEntityID;
            var thisDeptId = allCurrent.Single(edh => edh.EmployeeID == thisId).DepartmentID;

            return(allCurrent.Where(edh => edh.DepartmentID == thisDeptId).Select(edh => edh.Employee));
        }
        public StoreSalesInfo Save(IFunctionalContainer container)
        {
            EditMode = false;
            var cus = CustomerRepository.QueryCustomerByAccountNumber(AccountNumber, container).First();

            cus.SalesTerritory    = SalesTerritory;
            cus.Store.SalesPerson = SalesPerson;
            cus.Store.Name        = StoreName;
            return(this);
        }
Beispiel #28
0
        public static QueryResultSingle CreateStaffSummary(IFunctionalContainer container)
        {
            var emps = container.Instances <Employee>();
            var sum  = new StaffSummary();

            sum.TotalStaff = emps.Count();
            sum.Male       = emps.Count(e => e.Gender == "M");
            sum.Female     = emps.Count(e => e.Gender == "F");
            return(new QueryResultSingle(sum));
        }
Beispiel #29
0
        public static CustomerDashboard CustomerDashboard(
            string accountNumber,
            IFunctionalContainer container)
        {
            Customer cust = QueryCustomerByAccountNumber(accountNumber, container).FirstOrDefault();
            var      dash = ViewModelHelper.NewViewModel <CustomerDashboard>(container);

            dash.Root = cust;
            return(dash);
        }
Beispiel #30
0
        public static QueryResultSingle FindEmployeeByNationalIDNumber(
            string nationalIDNumber,
            IFunctionalContainer container)
        {
            IQueryable <Employee> query = from obj in container.Instances <Employee>()
                                          where obj.NationalIDNumber == nationalIDNumber
                                          select obj;

            return(SingleObjectWarnIfNoMatch(query));
        }