Example #1
0
        public void WhenIExecuteTheFollowingTask(Table table)
        {
            string code   = String.Join(Environment.NewLine, table.Rows.Select(x => x["Code"]));
            string script = @"

                using Bob;

                public class Sample : IBob
                {
                    private ITask Default()
                    {
                        return " + code + @";
                    }

                    public void Execute(IPipeline pipeline)
                    {
                        pipeline.Define(Default);
                    }
                }

                            ";

            Pipeline pipeline = new Pipeline();
            IBob     bob      = Runner.Compile(script);

            bob.Execute(pipeline);
            pipeline.Execute("Default");
        }
Example #2
0
        static void Main(string[] args)
        {
            var sally = new C();

            sally.foo();     // A B C

            IBob sally2 = sally;

            sally2.foo();     // A

            Console.ReadLine();
        }
Example #3
0
        public static int Main(string[] args)
        {
            string script = args.Length > 0 ? File.ReadAllText(args[0]) : null;
            string target = args.Length > 1 ? args[1] : null;

            if (script != null)
            {
                TaskResult result;
                Pipeline   pipeline = new Pipeline();
                IBob       bob      = Runner.Compile(script);

                bob.Execute(pipeline);
                result = target == null?pipeline.Execute() : pipeline.Execute(target);

                return(result == TaskResult.Successful ? 0 : -1);
            }

            return(-1);
        }
Example #4
0
		public Buddy(IBob Parent, object Column)
			: this()
		{
			Bob.GetBobFromParentSimple(Parent, Column, TablesEnum.Buddy);
		}
Example #5
0
		private void FixFiguresForSubItem(IBob bob, IBob referenceBob)
		{
			if(bob is Invoice)
			{
				if(referenceBob is Invoice)
				{
					((Invoice)bob).Total = Convert.ToDecimal(bob.ExtraSelectElements["InvoiceCredit_Amount"]);
					//if(((Invoice)reference).Total < 0)

				}
				else if (referenceBob is Transfer)
				{
					((Invoice)bob).Total = Convert.ToDecimal(bob.ExtraSelectElements["InvoiceTransfer_Amount"]);
				}
			}
			else if (bob is Transfer)
			{
				if (referenceBob is Invoice)
				{
					((Transfer)bob).Amount = Convert.ToDecimal(bob.ExtraSelectElements["InvoiceTransfer_Amount"]);
				}
				else if (referenceBob is Transfer)
				{
					//((Transfer)bob).Amount = Convert.ToDecimal(bob.ExtraSelectElements["InvoiceTransfer_Amount"]);
				}
			}
		}
Example #6
0
		private List<PromoterAccountItem> GetPromoterAccountItemList(DateTime startDate, DateTime endDate, IBob referenceBob)
		{
			int startingRecord = this.RecordsPerPage * (this.pageNumber -1);
			List<PromoterAccountItem> promoterAccountItems = new List<PromoterAccountItem>();
			InvoiceSet invoices;
			TransferSet transfers;

			Query invoiceSummaryQuery = new Query();
			Query transferSummaryQuery = new Query();

			// Descending date order: Lastest first, oldest last
			// Replacing CreatedDateTime with TaxDateTime, as per Gee's request for OASIS v1.5
			// Order By CreatedDateTime instead of TaxDateTime, as per Dave's request 7/2/07
			invoiceSummaryQuery.OrderBy = new OrderBy(Invoice.Columns.CreatedDateTime, OrderBy.OrderDirection.Descending);
			invoiceSummaryQuery.Paging.RecordsPerPage = 0;
			invoiceSummaryQuery.Paging.RequestedPage = 1;

			transferSummaryQuery.OrderBy = new OrderBy("IsNull([Transfer].[DateTimeComplete], [Transfer].[DateTimeCreated]) DESC");
			transferSummaryQuery.Paging.RecordsPerPage = 0;
			transferSummaryQuery.Paging.RequestedPage = 1;

			if (referenceBob != null)
			{
				if (referenceBob is Invoice)
				{
					Invoice invoice = (Invoice)referenceBob;
					if (invoice.Type.Equals(Invoice.Types.Invoice))
					{
						invoiceSummaryQuery.QueryCondition = new Q(InvoiceCredit.Columns.InvoiceK, invoice.K);
						invoiceSummaryQuery.TableElement = new Join(Invoice.Columns.K, InvoiceCredit.Columns.CreditInvoiceK);						
					}
					else
					{
						invoiceSummaryQuery.QueryCondition = new Q(InvoiceCredit.Columns.CreditInvoiceK, invoice.K);
						invoiceSummaryQuery.TableElement = new Join(Invoice.Columns.K, InvoiceCredit.Columns.InvoiceK);
					}

					// Replacing TaxDateTime with CreatedDateTime, as per Dave's request 7/2/07
					invoiceSummaryQuery.Columns = new ColumnSet(Invoice.Columns.K, Invoice.Columns.Paid, Invoice.Columns.PromoterK, Invoice.Columns.CreatedDateTime, Invoice.Columns.DueDateTime,
								Invoice.Columns.Total, Invoice.Columns.Type, InvoiceCredit.Columns.Amount);

					invoiceSummaryQuery.Paging.RecordsPerPage = 0;
					invoiceSummaryQuery.Paging.RequestedPage = 1;
					
					transferSummaryQuery.QueryCondition = new And(new Q(InvoiceTransfer.Columns.InvoiceK, invoice.K),
                                                                  new Q(Transfer.Columns.Amount, QueryOperator.NotEqualTo, 0),
																  new Or(new Q(Transfer.Columns.Status, Transfer.StatusEnum.Success),
																		 new And(new Q(Transfer.Columns.Type, Transfer.TransferTypes.Refund),
																				 new Q(Transfer.Columns.Status, Transfer.StatusEnum.Pending))));
					transferSummaryQuery.TableElement = new Join(Transfer.Columns.K, InvoiceTransfer.Columns.TransferK);
					transferSummaryQuery.Columns = new ColumnSet(Transfer.Columns.K, Transfer.Columns.Status, Transfer.Columns.PromoterK, Transfer.Columns.DateTimeComplete, Transfer.Columns.DateTimeCreated, Transfer.Columns.Method,
																 Transfer.Columns.TransferRefundedK, Transfer.Columns.Amount, Transfer.Columns.Type, InvoiceTransfer.Columns.Amount);
					transferSummaryQuery.Paging.RecordsPerPage = 0;
					transferSummaryQuery.Paging.RequestedPage = 1;
				}
				else if (referenceBob is Transfer)
				{
					Transfer transfer = (Transfer)referenceBob;
					if (transfer.Type.Equals(Transfer.TransferTypes.Payment))
					{
						transferSummaryQuery.QueryCondition = new Q(Transfer.Columns.TransferRefundedK, transfer.K);
					}
					else
					{
						transferSummaryQuery.QueryCondition = new Q(Transfer.Columns.K, transfer.TransferRefundedK);
					}
					
					transferSummaryQuery.Paging.RecordsPerPage = 0;
					transferSummaryQuery.Paging.RequestedPage = 1;

					invoiceSummaryQuery.QueryCondition = new Q(InvoiceTransfer.Columns.TransferK, transfer.K);
					invoiceSummaryQuery.TableElement = new Join(Invoice.Columns.K, InvoiceTransfer.Columns.InvoiceK);
					// Replacing TaxDateTime with CreatedDateTime, as per Dave's request 7/2/07
					invoiceSummaryQuery.Columns = new ColumnSet(Invoice.Columns.K, Invoice.Columns.Paid, Invoice.Columns.PromoterK, Invoice.Columns.CreatedDateTime, Invoice.Columns.DueDateTime,
								Invoice.Columns.Total, Invoice.Columns.Type, InvoiceTransfer.Columns.Amount);
					invoiceSummaryQuery.Paging.RecordsPerPage = 0;
					invoiceSummaryQuery.Paging.RequestedPage = 1;
				}
			}
			else
			{
				Q InvoiceQ = new Q(Invoice.Columns.PromoterK, CurrentPromoter.K);
				// Replacing TaxDateTime with CreatedDateTime, as per Dave's request 7/2/07
				Q DateQ = new And(new Q(Invoice.Columns.CreatedDateTime, QueryOperator.GreaterThanOrEqualTo, startDate),
								  new Q(Invoice.Columns.CreatedDateTime, QueryOperator.LessThanOrEqualTo, endDate));

				// Outstanding only applies to Invoices
				if (this.FilterDropDownList.SelectedValue.Equals(Invoice.Statuses.Outstanding.ToString() + " Invoices"))
				{
					invoiceSummaryQuery.QueryCondition = new And(InvoiceQ, DateQ, new Q(Invoice.Columns.Paid, false), new Q(Invoice.Columns.Type, Invoice.Types.Invoice));//, new Q(Invoice.Columns.Type, Invoice.Types.Invoice));
					transferSummaryQuery.QueryCondition = new Q(Transfer.Columns.K, -1);
				}
				else
				{
					invoiceSummaryQuery.QueryCondition = new And(InvoiceQ, DateQ);
					transferSummaryQuery.QueryCondition = new And(new Q(Transfer.Columns.PromoterK, CurrentPromoter.K),
                                                                  new Q(Transfer.Columns.Amount, QueryOperator.NotEqualTo, 0),
																  new Or(new And(new Q(Transfer.Columns.Status, Transfer.StatusEnum.Success),
                                                                                 new Q(Transfer.Columns.DateTimeComplete, QueryOperator.GreaterThanOrEqualTo, startDate),
																                 new Q(Transfer.Columns.DateTimeComplete, QueryOperator.LessThanOrEqualTo, endDate)),
																		 new And(new Q(Transfer.Columns.Type, Transfer.TransferTypes.Refund),
                                                                                 new Q(Transfer.Columns.DateTimeCreated, QueryOperator.GreaterThanOrEqualTo, startDate),
																                 new Q(Transfer.Columns.DateTimeCreated, QueryOperator.LessThanOrEqualTo, endDate),
																				 new Or(new Q(Transfer.Columns.Status, Transfer.StatusEnum.Pending),
                                                                                        new Q(Transfer.Columns.Status, Transfer.StatusEnum.Success)))));
				}
			}

			invoiceSummaryQuery.FillMaxRecords = this.pageNumber * this.RecordsPerPage + 1;
			transferSummaryQuery.FillMaxRecords = this.pageNumber * this.RecordsPerPage + 1;

			invoices = new InvoiceSet(invoiceSummaryQuery);
			transfers = new TransferSet(transferSummaryQuery);

			if (referenceBob == null)
			{
				if (this.GetAllOutstanding)
				{
					this.PaginationPanel.Visible = false;
				}
				else
				{
					this.PaginationPanel.Visible = true;

					this.PrevPageLinkButton.Enabled = this.pageNumber != 1;
					this.NextPageLinkButton.Enabled = invoices.Count + transfers.Count > this.pageNumber * this.RecordsPerPage;
				}
			}
			
			// Merge into one Bob List
			int invoiceCounter = 0;
			int transferCounter = 0;

			while (startingRecord > invoices.Count + transfers.Count)
			{
				startingRecord -= this.RecordsPerPage;
			}

			int endingRecord = startingRecord + this.RecordsPerPage;

			while ((invoices.Count > invoiceCounter || transfers.Count > transferCounter) && invoiceCounter + transferCounter < endingRecord)
			{
				if (invoices.Count > invoiceCounter && transfers.Count > transferCounter)
				{
					// Replacing TaxDateTime with CreatedDateTime, as per Dave's request 7/2/07
					if (invoices[invoiceCounter].CreatedDateTime > (transfers[transferCounter].DateTimeComplete > transfers[transferCounter].DateTimeCreated ? transfers[transferCounter].DateTimeComplete : transfers[transferCounter].DateTimeCreated))
					{
						if (invoiceCounter + transferCounter >= startingRecord)
						{
							if (referenceBob != null)
							{
								FixFiguresForSubItem(invoices[invoiceCounter], referenceBob);
							}
							promoterAccountItems.Add(new PromoterAccountItem(invoices[invoiceCounter]));
						}
						invoiceCounter++;
					}
					else
					{
						if (invoiceCounter + transferCounter >= startingRecord)
						{
							if (referenceBob != null)
							{
								FixFiguresForSubItem(transfers[transferCounter], referenceBob);
							}
							promoterAccountItems.Add(new PromoterAccountItem(transfers[transferCounter]));
						}
						transferCounter++;
					}
				}
				else if (invoices.Count > invoiceCounter)
				{
					if (invoiceCounter + transferCounter >= startingRecord)
					{
						if (referenceBob != null)
						{
							FixFiguresForSubItem(invoices[invoiceCounter], referenceBob);
						}
						promoterAccountItems.Add(new PromoterAccountItem(invoices[invoiceCounter]));
					}
					invoiceCounter++;
				}
				else
				{
					if (invoiceCounter + transferCounter >= startingRecord)
					{
						if (referenceBob != null)
						{
							FixFiguresForSubItem(transfers[transferCounter], referenceBob);
						}
						promoterAccountItems.Add(new PromoterAccountItem(transfers[transferCounter]));
					}
					transferCounter++;
				}
			}

			return promoterAccountItems;
		}
Example #7
0
		private List<PromoterAccountItem> GetPromoterAccountItemList(IBob referenceBob)
		{
			return GetPromoterAccountItemList(new DateTime(1900, 1, 1), DateTime.MaxValue, referenceBob);
		}
Example #8
0
		internal void GetBobFromParentSimple(IBob parent, object ColumnEnum, TablesEnum TableEnum)
		{
			var bob = parent.Bob;
			string tableName = Tables.GetTableName(Tables.GetTableEnum(ColumnEnum)) + "_" + Tables.GetColumnName(ColumnEnum) + "_" + Tables.GetTableName(TableEnum);
			if (bob.BobSet != null &&
				bob.DataRow != null &&
				bob.BobSet.TableNames.Contains(tableName))
			{
				this.ColumnPrefix = tableName;
				this.Initialise(bob.BobSet, bob.DataRow);
			}
			else if (
				bob.BobSet != null &&
				bob.DataRow != null &&
				bob.BobSet.TableNames.Contains(Tables.GetTableName(TableEnum)))
			{
				this.ColumnPrefix = Tables.GetTableName(TableEnum);
				this.Initialise(bob.BobSet, bob.DataRow);
			}
		}
Example #9
0
		public GroupPhoto(IBob Parent, object Column)
			: this()
		{
			this.Bob.GetBobFromParentSimple(Parent, Column, TablesEnum.GroupPhoto);
		}
Example #10
0
		public void ResetObjectFilterObject()
		{
			objectFilterBob = null;
		}