public void TestTransactions()
		{
			switch (aggTest.es.Connection.Name)
			{
				case "SQLStoredProcEnterprise":
				case "SQLDynamicEnterprise":
				case "ORACLEStoredProcEnterprise":
				case "ORACLEDynamicEnterprise":
				case "VistaDBDynamic":
					Assert.Ignore("Using esTransactionScope only");
					break;

				default:
                    int tempId1 = 0;
                    int tempId2 = 0;

                    aggTest = new AggregateTest();
                    AggregateTest aggTest2 = new AggregateTest();

                    using (esTransactionScope scope = new esTransactionScope())
                    {
                        aggTest.Save();
                        tempId1 = aggTest.Id.Value;
                        aggTest2.Save();
                        tempId2 = aggTest2.Id.Value;

                        scope.Complete();
                    }

                    aggTest = new AggregateTest();
                    Assert.IsTrue(aggTest.LoadByPrimaryKey(tempId1));
                    aggTest.MarkAsDeleted();
                    aggTest.Save();

                    aggTest = new AggregateTest();
                    Assert.IsTrue(aggTest.LoadByPrimaryKey(tempId2));
                    aggTest.MarkAsDeleted();
                    aggTest.Save();

					break;
			}
		}
Ejemplo n.º 2
0
 protected override void LinqMaterializeTest(int count)
 {
     using (var ts = new esTransactionScope())
     {
         var simplests = new SimplestsCollection();
         int i = 0;
         while (i < count)
         {
             simplests.Load(_db, _db.GetTable<Simplests>().Where(o => o.Id > 0));
             foreach (var o in simplests)
                 if (++i >= count)
                     break;
         }
         ts.Complete();
     }
 }
Ejemplo n.º 3
0
 protected override void NativeQueryTest(int count)
 {
     using (var ts = new esTransactionScope())
     {
         for (int i = 0; i < count; i++)
         {
             var simplests = new SimplestsCollection();
             var id = i % InstanceCount;
             simplests.Query.Where(simplests.Query.Id == id);
             if (simplests.Query.Load())
                 foreach (var simplest in simplests)
                 {
                     // Doing nothing, just enumerate
                 }
         }
         ts.Complete();
     }
 }
Ejemplo n.º 4
0
 protected override void CompiledLinqQueryTest(int count)
 {
     using (var ts = new esTransactionScope())
     {
         for (int i = 0; i < count; i++)
         {
             var id = i % InstanceCount;
             var query = new SimplestsCollection();
             query.Load(_db, _compiledQuery(_db, id));
             foreach (var simplest in query)
             {
                 // Doing nothing, just enumerate
             }
         }
         ts.Complete();
     }
 }
Ejemplo n.º 5
0
 protected override void FetchTest(int count)
 {
     long sum = (long) count * (count - 1) / 2;
     using (var ts = new esTransactionScope())
     {
         for (int i = 0; i < count; i++)
         {
             var id = (long) i % InstanceCount;
             var simplest = new Simplests();
             simplest.LoadByPrimaryKey(id);
             sum -= simplest.Id.Value;
         }
         ts.Complete();
     }
     if (count <= InstanceCount)
         Assert.AreEqual(0, sum);
 }
        public void TestFailedTransaction()
        {
            switch (aggTest.es.Connection.Name)
            {
                case "SQLStoredProcEnterprise":
                case "SQLDynamicEnterprise":
                case "ORACLEStoredProcEnterprise":
                case "ORACLEDynamicEnterprise":
                case "VistaDBDynamic":
                    Assert.Ignore("Using esTransactionScope only");
                    break;

                default:
                    try
                    {
                        aggTest = new AggregateTest();
                        AggregateTest aggTest2 = new AggregateTest();
                        int tempId1 = -1;
                        int tempId2 = -1;
                        aggTest2.str().HireDate = "1/1/1";

                        using (esTransactionScope scope = new esTransactionScope())
                        {
                            try
                            {
                                aggTest.Save();
                                tempId1 = aggTest.Id.Value;
                                aggTest2.Save();
                                tempId2 = aggTest2.Id.Value;

                                throw new Exception();

                                scope.Complete();
                            }
                            catch
                            {
                            }
                        }
                        aggTest = new AggregateTest();
                        Assert.IsFalse(aggTest.LoadByPrimaryKey(tempId1));

                        aggTest = new AggregateTest();
                        Assert.IsFalse(aggTest.LoadByPrimaryKey(tempId2));
                    }
                    catch (Exception ex)
                    {
                        Assert.Fail(ex.ToString());
                    }
                    break;
            }
        }
Ejemplo n.º 7
0
        private static DataTable SaveDynamicCollection_InsertsUpdates(esDataRequest request)
        {
            DataTable dataTable = CreateDataTable(request);

            using (esTransactionScope scope = new esTransactionScope())
            {
                using (SADataAdapter da = new SADataAdapter())
                {
                    da.AcceptChangesDuringUpdate = false;
                    da.ContinueUpdateOnError = request.ContinueUpdateOnError;

                    SACommand cmd = null;

                    if (!request.IgnoreComputedColumns)
                    {
                        da.RowUpdated += new SARowUpdatedEventHandler(OnRowUpdated);
                    }

                    foreach (esEntitySavePacket packet in request.CollectionSavePacket)
                    {
                        if (packet.RowState != esDataRowState.Added && packet.RowState != esDataRowState.Modified) continue;

                        DataRow row = dataTable.NewRow();
                        dataTable.Rows.Add(row);

                        switch (packet.RowState)
                        {
                            case esDataRowState.Added:
                                cmd = da.InsertCommand = Shared.BuildDynamicInsertCommand(request, packet.ModifiedColumns);
                                SetModifiedValues(request, packet, row);
                                break;

                            case esDataRowState.Modified:
                                cmd = da.UpdateCommand = Shared.BuildDynamicUpdateCommand(request, packet.ModifiedColumns);
                                SetOriginalValues(request, packet, row, false);
                                SetModifiedValues(request, packet, row);
                                row.AcceptChanges();
                                row.SetModified();
                                break;
                        }

                        request.Properties["esDataRequest"] = request;
                        request.Properties["esEntityData"] = packet;
                        dataTable.ExtendedProperties["props"] = request.Properties;

                        DataRow[] singleRow = new DataRow[1];
                        singleRow[0] = row;

                        try
                        {
                            esTransactionScope.Enlist(cmd, request.ConnectionString, CreateIDbConnectionDelegate);

                            #region Profiling

                            if (sTraceHandler != null)
                            {
                                using (esTraceArguments esTrace = new esTraceArguments(request, cmd, packet, "SaveCollectionDynamic", System.Environment.StackTrace))
                                {
                                    try
                                    {
                                        da.Update(singleRow);
                                    }
                                    catch (Exception ex)
                                    {
                                        esTrace.Exception = ex.Message;
                                        throw;
                                    }
                                }
                            }
                            else

                            #endregion Profiling

                            {
                                da.Update(singleRow);
                            }

                            if (row.HasErrors)
                            {
                                request.FireOnError(packet, row.RowError);
                            }
                        }
                        finally
                        {
                            esTransactionScope.DeEnlist(cmd);
                            dataTable.Rows.Clear();
                        }
                    }
                }

                scope.Complete();
            }

            return dataTable;
        }
        static private DataTable SaveDynamicCollection_Deletes(esDataRequest request)
        {
            SACommand cmd = null;

            DataTable dataTable = CreateDataTable(request);

            using (esTransactionScope scope = new esTransactionScope())
            {
                using (SADataAdapter da = new SADataAdapter())
                {
                    da.AcceptChangesDuringUpdate = false;
                    da.ContinueUpdateOnError = request.ContinueUpdateOnError;

                    try
                    {
                        da.ContinueUpdateOnError = request.ContinueUpdateOnError;

                        cmd = da.DeleteCommand = Shared.BuildDynamicDeleteCommand(request, request.CollectionSavePacket[0]);
                        esTransactionScope.Enlist(cmd, request.ConnectionString, CreateIDbConnectionDelegate);

                        DataRow[] singleRow = new DataRow[1];

                        // Delete each record
                        foreach (esEntitySavePacket packet in request.CollectionSavePacket)
                        {
                            DataRow row = dataTable.NewRow();
                            dataTable.Rows.Add(row);

                            SetOriginalValues(request, packet, row, true);
                            row.AcceptChanges();
                            row.Delete();

                            singleRow[0] = row;
                            da.Update(singleRow);

                            if (row.HasErrors)
                            {
                                request.FireOnError(packet, row.RowError);
                            }

                            dataTable.Rows.Clear(); // ADO.NET won't let us reuse the same DataRow
                        }
                    }
                    finally
                    {
                        esTransactionScope.DeEnlist(cmd);
                    }
                }
                scope.Complete();
            }

            return request.Table;
        }
        protected void RadGrid1_InsertCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
        {
            GridEditableItem editedItem = e.Item as GridEditableItem;
            UserControl userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID);
            DateTime TransDateMonth = DateTime.Now;
            try
            {
                TransDateMonth = (DateTime)(userControl.FindControl("dtpTransDate") as RadDatePicker).DbSelectedDate;
            }
            catch (Exception ex)
            {
                string error = ex.Message;
            }
            int transDateMonth = TransDateMonth.Month;
            //perubahan terakhir, autonumber mengikuti bulan transaksi, bukan bulan berjalan
            //string month = DateTime.Now.Month.ToString().Trim();
            string month = transDateMonth.ToString().Trim();
            string autonumber = "";
            if (month.Length == 1)
                month = ('0' + month).Trim();

            Trans Trans = new Trans();
            //Auto Number
            AutoNumberingQuery anQ = new AutoNumberingQuery();
            anQ.SelectAll();
            anQ.Where(anQ.KaMonth == month, anQ.KaYear == DateTime.Now.Year.ToString().Trim());
            AutoNumberingCollection anColl = new AutoNumberingCollection();

            anColl.Load(anQ);
            //KelAnggaranQuery kaQ = new KelAnggaranQuery();
            //kaQ.SelectAll();
            //kaQ.Where(kaQ.KaCode == (userControl.FindControl("cmbTransCODE") as RadComboBox).SelectedValue.Trim());
            //KelAnggaranCollection kaColl = new KelAnggaranCollection();

            //kaColl.Load(kaQ);            

            if (anColl.Count == 0)
            {
                AutoNumberingCollection anCollection = new AutoNumberingCollection();
                AutoNumbering aN = new AutoNumbering();
                aN = anCollection.AddNew();
                aN.KaYear = DateTime.Now.Year.ToString().Trim();
                aN.KaMonth = month;
                aN.LastNumber = 1;
                aN.PrefixNumber = "000";
                //AutoNumbering an = new AutoNumbering { KaYear = DateTime.Now.Year.ToString().Trim(), KaMonth = month, LastNumber = 1, PrefixNumber = "000" };
                autonumber = String.Format("{0}{1}{2}-0001", autonumber, DateTime.Now.Year.ToString().Trim(), month);
                //an.Save();

                try
                {
                    TransCollection transCollection = new TransCollection();
                    Trans = transCollection.AddNew();
                    //Trans.KaCode = (userControl.FindControl("cmbTransCODE") as RadComboBox).SelectedItem.Value;
                    Trans.KaCode = (userControl.FindControl("HiddenField1") as HiddenField).Value;
                    Trans.TransNumber = autonumber.ToUpper();
                    Trans.CekBgNumber = (userControl.FindControl("txtCek") as RadTextBox).Text;
                    //Trans.Amount = Convert.ToDecimal((userControl.FindControl("txtDebitAmount") as RadNumericTextBox).Value - (userControl.FindControl("txtCreditAmount") as RadNumericTextBox).Value);
                    Trans.DebitAmount = Convert.ToDecimal((userControl.FindControl("txtDebitAmount") as RadNumericTextBox).Value);
                    Trans.CreditAmount = Convert.ToDecimal((userControl.FindControl("txtCreditAmount") as RadNumericTextBox).Value);
                    Trans.Descript = (userControl.FindControl("txtDESC") as RadTextBox).Text;
                    Trans.KasId = (userControl.FindControl("cmbKasID") as RadComboBox).SelectedValue.ToUpper();
                    Trans.TransDate = (DateTime)(userControl.FindControl("dtpTransDate") as RadDatePicker).DbSelectedDate;
                    Trans.UserInsert = "toro";
                    Trans.TglInsert = DateTime.Now;
                    Trans.PeriodId = (Int32)HttpContext.Current.Session["_periodeId"];
                    Trans.Isverified = false;
                    Trans.IsClosed = false;

                    using (esTransactionScope scope = new esTransactionScope())
                    {
                        anCollection.Save();
                        transCollection.Save();
                        scope.Complete();
                    }  
                }
                catch (Exception ex)
                {
                    string es = ex.Message;
                }
                finally
                {
                    RadGrid1.Rebind();
                }
            }
            else
                foreach (AutoNumbering aa in anColl)
                {
                    string i = (aa.LastNumber + 1).ToString().Trim();
                    if (i.Length == 1)
                        autonumber = String.Format("{0}{1}{2}-000{3}", autonumber, aa.KaYear, aa.KaMonth, i);
                    if (i.Length == 2)
                        autonumber = String.Format("{0}{1}{2}-00{3}", autonumber, aa.KaYear, aa.KaMonth, i);
                    if (i.Length == 3)
                        autonumber = String.Format("{0}{1}{2}-0{3}", autonumber, aa.KaYear, aa.KaMonth, i);
                    if (i.Length == 4)
                        autonumber = String.Format("{0}{1}{2}-{3}", autonumber, aa.KaYear, aa.KaMonth, i);
                    AutoNumbering anb = new AutoNumbering();
                    AutoNumberingCollection anCollection = new AutoNumberingCollection();
                    anb = anCollection.AddNew();
                    if (anb.LoadByPrimaryKey((long)aa.Id))
                    {
                        anb.LastNumber = aa.LastNumber + 1;                        

                        try
                        {
                            TransCollection transCollection = new TransCollection();
                            Trans = transCollection.AddNew();                            
                            Trans.KaCode = (userControl.FindControl("HiddenField1") as HiddenField).Value;
                            Trans.TransNumber = autonumber.ToUpper();
                            Trans.CekBgNumber = (userControl.FindControl("txtCek") as RadTextBox).Text;                            
                            Trans.DebitAmount = Convert.ToDecimal((userControl.FindControl("txtDebitAmount") as RadNumericTextBox).Value);
                            Trans.CreditAmount = Convert.ToDecimal((userControl.FindControl("txtCreditAmount") as RadNumericTextBox).Value);
                            Trans.Descript = (userControl.FindControl("txtDESC") as RadTextBox).Text;
                            Trans.KasId = (userControl.FindControl("cmbKasID") as RadComboBox).SelectedValue.ToUpper();
                            Trans.TransDate = (DateTime)(userControl.FindControl("dtpTransDate") as RadDatePicker).DbSelectedDate;
                            Trans.UserInsert = "toro";
                            Trans.TglInsert = DateTime.Now;
                            Trans.PeriodId = (Int32)HttpContext.Current.Session["_periodeId"];
                            Trans.Isverified = false;
                            Trans.IsClosed = false;

                            anb.LastNumber = aa.LastNumber + 1;

                            using (esTransactionScope scope = new esTransactionScope())
                            {                                
                                transCollection.Save();
                                scope.Complete();
                            }
                            anb.Save();                            
                        }
                        catch (Exception ex)
                        {
                            string es = ex.Message;
                        }
                        finally
                        {
                            RadGrid1.Rebind();
                        }
                    }
                }

        }
		/// <summary>
		/// Used to Save the data to the database
		/// </summary>
		/// <returns>True if Successful</returns>
        public override bool Submit(ChangeSet changeSet)
        {
            try
            {
                using (esTransactionScope scope = new esTransactionScope())
                {
                    bool success= base.Submit(changeSet);

                    if (success)
                    {
                        scope.Complete();
                    }

                    return success;
                }
            }
            catch (Exception ex)
            {
                if (!HandleError(ex))
                {
                    throw;
                }

                return true;
            }
        }
        static private DataTable SaveDynamicCollection_InsertsUpdates(esDataRequest request)
        {
            DataTable dataTable = CreateDataTable(request);

            using (esTransactionScope scope = new esTransactionScope())
            {
                using (VistaDBDataAdapter da = new VistaDBDataAdapter())
                {
                    da.AcceptChangesDuringUpdate = false;
                    da.ContinueUpdateOnError = request.ContinueUpdateOnError;

                    VistaDBCommand cmd = null;

                    if (!request.IgnoreComputedColumns)
                    {
                        da.RowUpdated += new VistaDBRowUpdatedEventHandler(OnRowUpdated);
                    }

                    foreach (esEntitySavePacket packet in request.CollectionSavePacket)
                    {
                        if (packet.RowState != esDataRowState.Added && packet.RowState != esDataRowState.Modified) continue;

                        DataRow row = dataTable.NewRow();
                        dataTable.Rows.Add(row);

                        switch (packet.RowState)
                        {
                            case esDataRowState.Added:
                                cmd = da.InsertCommand = Shared.BuildDynamicInsertCommand(request, packet.ModifiedColumns);
                                SetModifiedValues(request, packet, row);
                                break;

                            case esDataRowState.Modified:
                                cmd = da.UpdateCommand = Shared.BuildDynamicUpdateCommand(request, packet.ModifiedColumns);
                                SetOriginalValues(request, packet, row, false);
                                SetModifiedValues(request, packet, row);
                                row.AcceptChanges();
                                row.SetModified();
                                break;
                        }

                        request.Properties["esDataRequest"] = request;
                        request.Properties["esEntityData"] = packet;
                        dataTable.ExtendedProperties["props"] = request.Properties;

                        DataRow[] singleRow = new DataRow[1];
                        singleRow[0] = row;

                        try
                        {
                            esTransactionScope.Enlist(cmd, request.ConnectionString, CreateIDbConnectionDelegate);
                            da.Update(singleRow);

                            if (row.HasErrors)
                            {
                                request.FireOnError(packet, row.RowError);
                            }
                        }
                        finally
                        {
                            esTransactionScope.DeEnlist(cmd);
                            dataTable.Rows.Clear();
                        }

                        if (!row.HasErrors && cmd.Parameters != null)
                        {
                            foreach (VistaDBParameter param in cmd.Parameters)
                            {
                                switch (param.Direction)
                                {
                                    case ParameterDirection.Output:
                                    case ParameterDirection.InputOutput:

                                        packet.CurrentValues[param.SourceColumn] = param.Value;
                                        break;
                                }
                            }
                        }

                        cmd.Dispose();
                    }
                }

                scope.Complete();
            }

            return dataTable;
        }
        protected void cmdSave_Click(object sender, EventArgs e)
        {
            //ADD
            Trans trans = new Trans();
            string Descript = txtDescription.Text;
            string CreditAmoun = txtCreditAmount.Text;
            if (Request.QueryString["BKU_ID"] == null)
            {
                int TransDateMonth = ((DateTime)dtpTransDate.SelectedDate).Month;
                string month = TransDateMonth.ToString().Trim();
                string autonumber = "";
                if (month.Length == 1)
                    month = ('0' + month).Trim();

                //Trans Trans = new Trans();
                //Auto Number
                AutoNumberingQuery anQ = new AutoNumberingQuery();
                anQ.SelectAll();
                anQ.Where(anQ.KaMonth == month, anQ.KaYear == DateTime.Now.Year.ToString().Trim());
                AutoNumberingCollection anColl = new AutoNumberingCollection();
                anColl.Load(anQ);
                //New month, new autonumber
                if (anColl.Count == 0)
                {
                    AutoNumberingCollection anCollection = new AutoNumberingCollection();
                    AutoNumbering aN = new AutoNumbering();
                    aN = anCollection.AddNew();
                    aN.KaYear = DateTime.Now.Year.ToString().Trim();
                    aN.KaMonth = month;
                    aN.LastNumber = 1;
                    aN.PrefixNumber = "000";
                    autonumber = String.Format("{0}{1}{2}-0001", autonumber, DateTime.Now.Year.ToString().Trim(), month);
                    try
                    {
                        Decimal DebitAmount = 0;
                        Decimal CreditAmount = 0;
                        TransCollection transColl = new TransCollection();
                        trans = transColl.AddNew();
                        trans.TransNumber = autonumber.ToUpper();
                        trans.KaCode = cmbTransCode.SelectedValue;
                        trans.TransDate = dtpTransDate.SelectedDate;
                        trans.KasId = cmbKasID.SelectedValue;
                        trans.Descript = txtDescription.Text;
                        trans.CekBgNumber = txtCekBG.Text;
                        if (Decimal.TryParse(txtDebitAmount.Text, out DebitAmount))
                            trans.DebitAmount = DebitAmount;
                        else
                            trans.DebitAmount = 0;
                        if (Decimal.TryParse(txtCreditAmount.Text, out CreditAmount))
                            trans.CreditAmount = CreditAmount;
                        else
                            trans.CreditAmount = 0;
                        trans.UserInsert = HttpContext.Current.Session["UserId"].ToString();
                        trans.TglInsert = DateTime.Now;
                        trans.Isverified = false;
                        trans.IsClosed = false;
                        trans.PeriodId = (Int32)HttpContext.Current.Session["_periodeId"];

                        using (esTransactionScope scope = new esTransactionScope())
                        {
                            anCollection.Save();
                            transColl.Save();
                            scope.Complete();
                        }
                    }
                    catch (Exception ex)
                    {
                        string es = ex.Message;
                    }
                }
                // If month already exist, increment autonumber
                else
                {
                    foreach (AutoNumbering aa in anColl)
                    {
                        string i = (aa.LastNumber + 1).ToString().Trim();
                        if (i.Length == 1)
                            autonumber = String.Format("{0}{1}{2}-000{3}", autonumber, aa.KaYear, aa.KaMonth, i);
                        if (i.Length == 2)
                            autonumber = String.Format("{0}{1}{2}-00{3}", autonumber, aa.KaYear, aa.KaMonth, i);
                        if (i.Length == 3)
                            autonumber = String.Format("{0}{1}{2}-0{3}", autonumber, aa.KaYear, aa.KaMonth, i);
                        if (i.Length == 4)
                            autonumber = String.Format("{0}{1}{2}-{3}", autonumber, aa.KaYear, aa.KaMonth, i);
                        AutoNumbering anb = new AutoNumbering();
                        AutoNumberingCollection anCollection = new AutoNumberingCollection();
                        anb = anCollection.AddNew();
                        if (anb.LoadByPrimaryKey((long)aa.Id))
                        {
                            anb.LastNumber = aa.LastNumber + 1;

                            try
                            {
                                Decimal DebitAmount = 0;
                                Decimal CreditAmount = 0;
                                TransCollection transColl = new TransCollection();
                                trans = transColl.AddNew();
                                trans.TransNumber = autonumber.ToUpper();
                                trans.KaCode = cmbTransCode.SelectedValue;
                                trans.TransDate = dtpTransDate.SelectedDate;
                                trans.KasId = cmbKasID.SelectedValue;
                                trans.CekBgNumber = txtCekBG.Text;
                                trans.KasId = cmbKasID.SelectedValue;
                                trans.Descript = txtDescription.Text;
                                if (Decimal.TryParse(txtDebitAmount.Text, out DebitAmount))
                                    trans.DebitAmount = DebitAmount;
                                else
                                    trans.DebitAmount = 0;
                                if (Decimal.TryParse(txtCreditAmount.Text, out CreditAmount))
                                    trans.CreditAmount = CreditAmount;
                                else
                                    trans.CreditAmount = 0;
                                trans.PeriodId = (Int32)HttpContext.Current.Session["_periodeId"];
                                trans.Isverified = false;
                                trans.IsClosed = false;
                                trans.UserInsert = HttpContext.Current.Session["UserId"].ToString();
                                trans.TglInsert = DateTime.Now;

                                anb.LastNumber = aa.LastNumber + 1;

                                using (esTransactionScope scope = new esTransactionScope())
                                {
                                    transColl.Save();
                                    anb.Save();
                                    scope.Complete();
                                }
                                //anb.Save();
                            }
                            catch (Exception ex)
                            {
                                string es = ex.Message;
                            }
                        }
                    }
                }
            }
            //EDIT
            else
            {
                long bkuID = 0;
                Decimal DebitAmount = 0;
                Decimal CreditAmount = 0;
                try
                {
                    if (long.TryParse(txtTransID.Text, out bkuID))
                    {
                        if (trans.LoadByPrimaryKey(bkuID))
                        {
                            trans.TransDate = dtpTransDate.SelectedDate;
                            trans.KaCode = cmbTransCode.SelectedItem.Value;
                            trans.KasId = cmbKasID.SelectedItem.Value;
                            trans.Descript = Descript;
                            trans.CekBgNumber = txtCekBG.Text;
                            if (Decimal.TryParse(txtDebitAmount.Text, out DebitAmount))
                                trans.DebitAmount = DebitAmount;
                            else
                                trans.DebitAmount = 0;
                            if (Decimal.TryParse(txtCreditAmount.Text, out CreditAmount))
                                trans.CreditAmount = CreditAmount;
                            else
                                trans.CreditAmount = 0;
                            trans.UserUpdate = HttpContext.Current.Session["UserId"].ToString();
                            trans.TglUpdate = DateTime.Now;
                            trans.Save();
                        }
                    }
                }
                catch (Exception ex)
                {
                    string es = ex.Message;
                }
            }
            if (Request.QueryString["BKU_ID"] != null)
            {
                ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind('navigateAndRebind');", true);
                HttpContext.Current.Session["CUDMode"] = "1"; // EDIT
            }
            else
            {
                ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true);
                HttpContext.Current.Session["CUDMode"] = "0"; //ADD
            }
        }
Ejemplo n.º 13
0
        private static DataTable SaveStoredProcCollection(esDataRequest request)
        {
            if (request.CollectionSavePacket == null) return null;

            SqlCommand cmdInsert = null;
            SqlCommand cmdUpdate = null;
            SqlCommand cmdDelete = null;

            try
            {
                using (esTransactionScope scope = new esTransactionScope())
                {
                    SqlCommand cmd = null;
                    bool exception = false;

                    foreach (esEntitySavePacket packet in request.CollectionSavePacket)
                    {
                        cmd = null;
                        exception = false;

                        #region Setup Commands

                        switch (packet.RowState)
                        {
                            case esDataRowState.Added:
                                if (cmdInsert == null)
                                {
                                    cmdInsert = Shared.BuildStoredProcInsertCommand(request, packet);
                                    esTransactionScope.Enlist(cmdInsert, request.ConnectionString, CreateIDbConnectionDelegate);
                                }
                                cmd = cmdInsert;
                                break;
                            case esDataRowState.Modified:
                                if (cmdUpdate == null)
                                {
                                    cmdUpdate = Shared.BuildStoredProcUpdateCommand(request, packet);
                                    esTransactionScope.Enlist(cmdUpdate, request.ConnectionString, CreateIDbConnectionDelegate);
                                }
                                cmd = cmdUpdate;
                                break;
                            case esDataRowState.Deleted:
                                if (cmdDelete == null)
                                {
                                    cmdDelete = Shared.BuildStoredProcDeleteCommand(request, packet);
                                    esTransactionScope.Enlist(cmdDelete, request.ConnectionString, CreateIDbConnectionDelegate);
                                }
                                cmd = cmdDelete;
                                break;

                            case esDataRowState.Unchanged:
                                continue;
                        }

                        #endregion Setup Commands

                        #region Preprocess Parameters

                        if (cmd.Parameters != null)
                        {
                            foreach (SqlParameter param in cmd.Parameters)
                            {
                                if (param.Direction == ParameterDirection.Output)
                                {
                                    param.Value = null;
                                }
                                else
                                {
                                    if (packet.CurrentValues.ContainsKey(param.SourceColumn))
                                    {
                                        param.Value = packet.CurrentValues[param.SourceColumn];
                                    }
                                    else
                                    {
                                        param.Value = null;
                                    }
                                }
                            }
                        }

                        #endregion Preprocess Parameters

                        #region Execute Command

                        try
                        {
                            int count;

                            #region Profiling

                            if (sTraceHandler != null)
                            {
                                using (esTraceArguments esTrace = new esTraceArguments(request, cmd, "SaveCollectionStoredProcedure", System.Environment.StackTrace))
                                {
                                    try
                                    {
                                        count = cmd.ExecuteNonQuery();
                                    }
                                    catch (Exception ex)
                                    {
                                        esTrace.Exception = ex.Message;
                                        throw;
                                    }
                                }
                            }
                            else

                            #endregion Profiling

                            {
                                count = cmd.ExecuteNonQuery();
                            }

                            if (count < 1)
                            {
                                throw new esConcurrencyException("Update failed to update any records @ " + cmd.CommandText);
                            }
                        }
                        catch (Exception ex)
                        {
                            exception = true;
                            request.FireOnError(packet, ex.Message);
                            if (!request.ContinueUpdateOnError)
                            {
                                throw;
                            }
                        }

                        #endregion Execute Command

                        #region Postprocess Parameters

                        if (!exception && packet.RowState != esDataRowState.Deleted && cmd.Parameters != null)
                        {
                            foreach (SqlParameter param in cmd.Parameters)
                            {
                                switch (param.Direction)
                                {
                                    case ParameterDirection.Output:
                                    case ParameterDirection.InputOutput:

                                        packet.CurrentValues[param.SourceColumn] = param.Value;
                                        break;
                                }
                            }
                        }

                        #endregion Postprocess Parameters
                    }

                    scope.Complete();
                }
            }
            finally
            {
                if (cmdInsert != null) esTransactionScope.DeEnlist(cmdInsert);
                if (cmdUpdate != null) esTransactionScope.DeEnlist(cmdUpdate);
                if (cmdDelete != null) esTransactionScope.DeEnlist(cmdDelete);
            }

            return null;
        }
Ejemplo n.º 14
0
        private static DataTable SaveDynamicCollection(esDataRequest request)
        {
            if (request.CollectionSavePacket == null) return null;

            using (esTransactionScope scope = new esTransactionScope())
            {
                SqlCommand cmd = null;
                bool exception = false;

                foreach (esEntitySavePacket packet in request.CollectionSavePacket)
                {
                    exception = false;
                    cmd = null;

                    switch (packet.RowState)
                    {
                        case esDataRowState.Added:
                            cmd = Shared.BuildDynamicInsertCommand(request, packet);
                            break;

                        case esDataRowState.Modified:
                            cmd = Shared.BuildDynamicUpdateCommand(request, packet);
                            break;

                        case esDataRowState.Deleted:
                            cmd = Shared.BuildDynamicDeleteCommand(request, packet);
                            break;

                        case esDataRowState.Unchanged:
                            continue;
                    }

                    try
                    {
                        esTransactionScope.Enlist(cmd, request.ConnectionString, CreateIDbConnectionDelegate);
                        int count;

                        #region Profiling

                        if (sTraceHandler != null)
                        {
                            using (esTraceArguments esTrace = new esTraceArguments(request, cmd, "SaveCollectionDynamic", System.Environment.StackTrace))
                            {
                                try
                                {
                                    count = cmd.ExecuteNonQuery(); ;
                                }
                                catch (Exception ex)
                                {
                                    esTrace.Exception = ex.Message;
                                    throw;
                                }
                            }
                        }
                        else

                        #endregion Profiling

                        {
                            count = cmd.ExecuteNonQuery();
                        }

                        if (count < 1)
                        {
                            throw new esConcurrencyException("Update failed to update any records for Table " + Shared.CreateFullName(request));
                        }
                    }
                    catch (Exception ex)
                    {
                        exception = true;

                        request.FireOnError(packet, ex.Message);

                        if (!request.ContinueUpdateOnError)
                        {
                            throw;
                        }
                    }
                    finally
                    {
                        esTransactionScope.DeEnlist(cmd);
                        cmd.Dispose();
                    }

                    if (!exception && packet.RowState != esDataRowState.Deleted && cmd.Parameters != null)
                    {
                        foreach (SqlParameter param in cmd.Parameters)
                        {
                            switch (param.Direction)
                            {
                                case ParameterDirection.Output:
                                case ParameterDirection.InputOutput:

                                    packet.CurrentValues[param.SourceColumn] = param.Value;
                                    break;
                            }
                        }
                    }
                }

                scope.Complete();
            }

            return null;
        }
        private void CopyAnnotationData(int fromAnnotationId, int toAnnotationId)
        {
            Annotation ann = new Annotation();
            if (!ann.LoadByPrimaryKey(toAnnotationId))
            {
                MessageBox.Show("To Annotation Not found");
                return;
            }

            ann = new Annotation();
            if (!ann.LoadByPrimaryKey(fromAnnotationId))
            {
                MessageBox.Show("From Annotation Not found");
                return;
            }

            Dictionary<int, int> axisKeys = new Dictionary<int, int>();
            Dictionary<int, int> seriesKeys = new Dictionary<int,int>();

            using (esTransactionScope scope = new esTransactionScope())
            {
                foreach (AnnotationPlot annPlot in ann.AnnotationPlotCollectionByAnnotationId)
                {
                    AnnotationPlot annPlotClone = new AnnotationPlot();
                    annPlotClone.AnnotationId = toAnnotationId;
                    annPlotClone.RegionId = annPlot.RegionId;
                    annPlotClone.Description = annPlot.Description;
                    annPlotClone.Title = annPlot.Title;
                    annPlotClone.Type = annPlot.Type;
                    annPlotClone.DimensionCount = annPlot.DimensionCount;
                    annPlotClone.Save();

                    foreach (AnnotationPlotAxis annPlotAxis in annPlot.AnnotationPlotAxisCollectionByPlotId)
                    {
                        AnnotationPlotAxis annPlotAxisClone =  new AnnotationPlotAxis();
                        annPlotAxisClone.PlotId = annPlotClone.Id;
                        annPlotAxisClone.Label = annPlotAxis.Label;
                        annPlotAxisClone.MinValue = annPlotAxis.MinValue;
                        annPlotAxisClone.MaxValue = annPlotAxis.MaxValue;
                        annPlotAxisClone.Scale = annPlotAxis.Scale;
                        annPlotAxisClone.Type = annPlotAxis.Type;
                        annPlotAxisClone.Dimension = annPlotAxis.Dimension;
                        annPlotAxisClone.Save();
                        axisKeys.Add(annPlotAxis.Id.Value, annPlotAxisClone.Id.Value);
                    }

                    foreach (AnnotationPlotSeries annPlotSeries in annPlot.AnnotationPlotSeriesCollectionByPlotId)
                    {
                        AnnotationPlotSeries annPlotSeriesClone = new AnnotationPlotSeries();
                        annPlotSeriesClone.PlotId = annPlotClone.Id;
                        annPlotSeriesClone.Description = annPlotSeries.Description;
                        annPlotSeriesClone.ColorRGB = annPlotSeries.ColorRGB;
                        annPlotSeriesClone.Save();
                        seriesKeys.Add(annPlotSeries.Id.Value, annPlotSeriesClone.Id.Value);
                    }
                }

                foreach (AnnotationPlot annPlot in ann.AnnotationPlotCollectionByAnnotationId)
                {
                    foreach (AnnotationPlotAxis annPlotAxis in annPlot.AnnotationPlotAxisCollectionByPlotId)
                    {
                        foreach (AnnotationPlotAxisData annPlotAxisData in annPlotAxis.AnnotationPlotAxisDataCollectionByAxisId)
                        {
                            AnnotationPlotAxisData annPlotAxisDataClone = new AnnotationPlotAxisData();
                            annPlotAxisDataClone.AxisId = axisKeys[annPlotAxisData.AxisId.Value];
                            annPlotAxisDataClone.SeriesId  = seriesKeys[annPlotAxisData.SeriesId.Value];
                            annPlotAxisDataClone.DataBin = annPlotAxisData.DataBin;
                            annPlotAxisDataClone.Save();
                        }
                    }

                    foreach (AnnotationPlotSeries annPlotSeries in annPlot.AnnotationPlotSeriesCollectionByPlotId)
                    {
                        foreach (AnnotationPlotAxisData annPlotAxisData in annPlotSeries.AnnotationPlotAxisDataCollectionBySeriesId)
                        {
                            AnnotationPlotAxisData annPlotAxisDataClone = new AnnotationPlotAxisData();
                            annPlotAxisDataClone.Query.Where(
                                annPlotAxisDataClone.Query.AxisId == axisKeys[annPlotAxisData.AxisId.Value] &&
                                annPlotAxisDataClone.Query.SeriesId == seriesKeys[annPlotAxisData.SeriesId.Value]);

                            if (!annPlotAxisDataClone.Query.Load())
                            {
                                annPlotAxisDataClone = new AnnotationPlotAxisData();
                                annPlotAxisDataClone.AxisId = axisKeys[annPlotAxisData.AxisId.Value];
                                annPlotAxisDataClone.SeriesId = seriesKeys[annPlotAxisData.SeriesId.Value];
                                annPlotAxisDataClone.DataBin = annPlotAxisData.DataBin;
                                annPlotAxisDataClone.Save();
                            }
                        }
                    }
                }
                scope.Complete();
            }
        }
Ejemplo n.º 16
0
 protected override void NativeMaterializeTest(int count)
 {
     using (var ts = new esTransactionScope())
     {
         var simplests = new SimplestsCollection();
         int i = 0;
         while (i < count)
         {
             simplests.LoadAll();
             foreach (var o in simplests)
                 if (++i >= count)
                     break;
         }
         ts.Complete();
     }
 }
Ejemplo n.º 17
0
        protected override void LinqQueryPageTest(int count, int pageSize)
        {
            using (var ts = new esTransactionScope())
            {
                for (var i = 0; i < count; i++)
                {
                    var id = (i * pageSize) % InstanceCount;
                    var simplests = new SimplestsCollection();
                    simplests.Load(_db, _pageQuery(_db, id, pageSize));
                    foreach (var o in simplests)
                    {
                        // Doing nothing, just enumerate
                    }
                }

                ts.Complete();
            }
        }
Ejemplo n.º 18
0
 protected override void InsertSingleTest(int count)
 {
     using (var ts = new esTransactionScope())
     {
         for (int i = 0; i < count; i++)
         {
             var simplest = new Simplests
             {
                 Id = i,
                 Value = i
             };
             simplest.Save();
         }
         ts.Complete();
     }
     InstanceCount = count;
 }
Ejemplo n.º 19
0
        private static DataTable SaveDynamicCollection_Deletes(esDataRequest request)
        {
            SACommand cmd = null;

            DataTable dataTable = CreateDataTable(request);

            using (esTransactionScope scope = new esTransactionScope())
            {
                using (SADataAdapter da = new SADataAdapter())
                {
                    da.AcceptChangesDuringUpdate = false;
                    da.ContinueUpdateOnError = request.ContinueUpdateOnError;

                    try
                    {
                        da.ContinueUpdateOnError = request.ContinueUpdateOnError;

                        cmd = da.DeleteCommand = Shared.BuildDynamicDeleteCommand(request, request.CollectionSavePacket[0]);
                        esTransactionScope.Enlist(cmd, request.ConnectionString, CreateIDbConnectionDelegate);

                        DataRow[] singleRow = new DataRow[1];

                        // Delete each record
                        foreach (esEntitySavePacket packet in request.CollectionSavePacket)
                        {
                            DataRow row = dataTable.NewRow();
                            dataTable.Rows.Add(row);

                            SetOriginalValues(request, packet, row, true);
                            row.AcceptChanges();
                            row.Delete();

                            singleRow[0] = row;

                            #region Profiling

                            if (sTraceHandler != null)
                            {
                                using (esTraceArguments esTrace = new esTraceArguments(request, cmd, packet, "SaveCollectionDynamic", System.Environment.StackTrace))
                                {
                                    try
                                    {
                                        da.Update(singleRow);
                                    }
                                    catch (Exception ex)
                                    {
                                        esTrace.Exception = ex.Message;
                                        throw;
                                    }
                                }
                            }
                            else

                            #endregion Profiling

                            {
                                da.Update(singleRow);
                            }

                            if (row.HasErrors)
                            {
                                request.FireOnError(packet, row.RowError);
                            }

                            dataTable.Rows.Clear(); // ADO.NET won't let us reuse the same DataRow
                        }
                    }
                    finally
                    {
                        esTransactionScope.DeEnlist(cmd);
                    }
                }
                scope.Complete();
            }

            return request.Table;
        }
Ejemplo n.º 20
0
 protected override void UpdateSingleTest()
 {
     using (var ts = new esTransactionScope())
     {
         var simplests = new SimplestsCollection();
         simplests.LoadAll();
         foreach (var o in simplests)
         {
             o.Value++;
             o.Save();
         }
         ts.Complete();
     }
 }
Ejemplo n.º 21
0
        private static DataTable SaveStoredProcCollection(esDataRequest request)
        {
            bool needToInsert = false;
            bool needToUpdate = false;
            bool needToDelete = false;

            Dictionary<DataRow, esEntitySavePacket> rowMapping = null;

            if (request.ContinueUpdateOnError)
            {
                rowMapping = new Dictionary<DataRow, esEntitySavePacket>();
            }

            //================================================
            // Create the DataTable ...
            //================================================
            DataTable dataTable = CreateDataTable(request);

            foreach (esEntitySavePacket packet in request.CollectionSavePacket)
            {
                DataRow row = dataTable.NewRow();

                switch (request.EntitySavePacket.RowState)
                {
                    case esDataRowState.Added:
                        SetModifiedValues(request, packet, row);
                        dataTable.Rows.Add(row);
                        if (request.ContinueUpdateOnError) rowMapping[row] = packet;
                        break;

                    case esDataRowState.Modified:
                        SetOriginalValues(request, packet, row, false);
                        SetModifiedValues(request, packet, row);
                        dataTable.Rows.Add(row);
                        row.AcceptChanges();
                        row.SetModified();
                        if (request.ContinueUpdateOnError) rowMapping[row] = packet;
                        break;

                    case esDataRowState.Deleted:
                        SetOriginalValues(request, packet, row, true);
                        dataTable.Rows.Add(row);
                        row.AcceptChanges();
                        row.Delete();
                        if (request.ContinueUpdateOnError) rowMapping[row] = packet;
                        break;
                }
            }

            if (Shared.HasUpdates(dataTable.Rows, out needToInsert, out needToUpdate, out needToDelete))
            {
                using (SADataAdapter da = new SADataAdapter())
                {
                    da.AcceptChangesDuringUpdate = false;
                    da.ContinueUpdateOnError = request.ContinueUpdateOnError;

                    SACommand cmd = null;

                    if (needToInsert) da.InsertCommand = cmd = Shared.BuildStoredProcInsertCommand(request);
                    if (needToUpdate) da.UpdateCommand = cmd = Shared.BuildStoredProcUpdateCommand(request);
                    if (needToDelete) da.DeleteCommand = cmd = Shared.BuildStoredProcDeleteCommand(request);

                    using (esTransactionScope scope = new esTransactionScope())
                    {
                        if (needToInsert) esTransactionScope.Enlist(da.InsertCommand, request.ConnectionString, CreateIDbConnectionDelegate);
                        if (needToUpdate) esTransactionScope.Enlist(da.UpdateCommand, request.ConnectionString, CreateIDbConnectionDelegate);
                        if (needToDelete) esTransactionScope.Enlist(da.DeleteCommand, request.ConnectionString, CreateIDbConnectionDelegate);

                        try
                        {
                            #region Profiling

                            if (sTraceHandler != null)
                            {
                                using (esTraceArguments esTrace = new esTraceArguments(request, cmd, "SaveCollectionStoredProcedure", System.Environment.StackTrace))
                                {
                                    try
                                    {
                                        da.Update(dataTable);
                                    }
                                    catch (Exception ex)
                                    {
                                        esTrace.Exception = ex.Message;
                                        throw;
                                    }
                                }
                            }
                            else

                            #endregion Profiling

                            {
                                da.Update(dataTable);
                            }
                        }
                        finally
                        {
                            if (needToInsert) esTransactionScope.DeEnlist(da.InsertCommand);
                            if (needToUpdate) esTransactionScope.DeEnlist(da.UpdateCommand);
                            if (needToDelete) esTransactionScope.DeEnlist(da.DeleteCommand);
                        }

                        scope.Complete();
                    }
                }

                if (request.ContinueUpdateOnError && dataTable.HasErrors)
                {
                    DataRow[] errors = dataTable.GetErrors();

                    foreach (DataRow rowWithError in errors)
                    {
                        request.FireOnError(rowMapping[rowWithError], rowWithError.RowError);
                    }
                }
            }

            return request.Table;
        }
Ejemplo n.º 22
0
 protected override void DeleteSingleTest()
 {
     using (var ts = new esTransactionScope())
     {
         var simplests = new SimplestsCollection();
         simplests.LoadAll();
         for (int i = simplests.Count - 1; i >= 0; i--)
         {
             var o = simplests[0];
             o.MarkAsDeleted();
             o.Save();
         }
         ts.Complete();
     }
 }