Exemple #1
0
 protected virtual void UpdateStatusesAfterChange(Object sender, StatusChangeEventArgs args)
 {
     if ((args.parameter.Definition.Properties & ParameterProperties.ComponentIntensity) > 0)
     {
         ParameterStatus commonfixed = ParameterStatus.Common | ParameterStatus.Fixed;
         //zmieniaj wszystkie pozostale statusy pod warunkiem ze wybieranym statusem nie jest common fixed (common fixed moze istniec bez wzgledu na pozostale statusy)
         if ((args.status & commonfixed) != commonfixed)
         {
             ParameterStatus constr = args.status & (ParameterStatus.Local | ParameterStatus.Common);
             for (int c = 0; c < args.group.Components.Size; c++)
             {
                 //zmieniaj tylko pozostale statusy - "wolacza" mozna sobie odpuscic
                 //
                 if (args.parameter != args.group.Components[c][0] &&
                     (args.group.Components[c][0].Status & commonfixed) != commonfixed)
                 {
                     args.group.Components[c][0].Status = args.group.Components[c][0].Status & ~(ParameterStatus.Local | ParameterStatus.Common) | constr;
                     //update references in other parameters
                     if (args.spectrum != args.spectra[0] && (args.status & ParameterStatus.Common) > 0)
                     {
                         args.group.Components[c][0].ReferencedParameter = args.spectra[0].Parameters[args.group.Definition.name].Components[c][0];
                     }
                 }
             }
         }
     }
 }
 private void ShipmentServiceOnStatusChanged(IShipmentService sender, StatusChangeEventArgs<IShipment> statusChangeEventArgs)
 {
     foreach (var shipment in statusChangeEventArgs.StatusChangedEntities)
     {
         Notification.Trigger("OrderShipped", shipment, new[] { "*****@*****.**" });
     }
 }
Exemple #3
0
        private static void ApiOnStatusChanged(object sender, StatusChangeEventArgs statusChangeEventArgs)
        {
            try
            {
                using (var db = new WWContext())
                {
                    var id =
#if RELEASE
                        1;
#elif RELEASE2
                        2;
#elif BETA
                        3;
#else
                        4;
#endif
                    if (id == 4)
                    {
                        return;
                    }
                    var b = db.BotStatus.Find(id);
                    b.BotStatus   = statusChangeEventArgs.Status.ToString();
                    CurrentStatus = b.BotStatus;
                    db.SaveChanges();
                }
            }
            finally
            {
            }
        }
Exemple #4
0
        static void sc(object sender, StatusChangeEventArgs args)
        {
            try
            {
                var c = Console.ForegroundColor;
                Console.ForegroundColor = ConsoleColor.DarkYellow;
                Console.Write($" {args.ReaderName,-42} ");
                Console.ForegroundColor = ConsoleColor.DarkGreen;
                Console.Write($" {"StatusChanged",-15} ");

                Console.ForegroundColor = (args.NewState & SCRState.InUse) == 0 && (args.NewState & SCRState.Mute) == 0 ? ConsoleColor.Cyan : ConsoleColor.Magenta;
                Console.Write($"{args.LastState,15} -> {args.NewState,-15} ");

                if (
                    (args.NewState & SCRState.Present) != 0 &&
                    (args.NewState & SCRState.InUse) == 0 &&
                    (args.NewState & SCRState.Mute) == 0)
                {
                    GetUID(args.ReaderName);
                }
                else if (
                    (args.NewState & SCRState.InUse) != 0 ||
                    (args.NewState & SCRState.Mute) != 0)
                {
                    Console.Write($"<== state unreadable.");
                }

                Console.WriteLine($"");
                Console.ForegroundColor = c;
            }
            catch (Exception ex) { var c = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"\n{ex}\n"); Console.ForegroundColor = c; }
        }
        private void ConnectionOnStatusChange(object sender, StatusChangeEventArgs e)
        {
            switch (e.NewStatus)
            {
            case Status.Disconnected:
                SendOutMessage(new DisconnectMessage());
                break;

            //case Status.Connected:
            //	SendOutMessage(new ConnectMessage());
            //	break;
            case Status.Connecting:
            case Status.Disconnecting:
            case Status.Retrying:
                break;

            case Status.Error:
                SendOutMessage(new ConnectMessage {
                    Error = new InvalidOperationException(LocalizedStrings.Str2959)
                });
                break;

            default:
                SendOutError(LocalizedStrings.Str1838Params.Put(e.NewStatus));
                break;
            }
        }
Exemple #6
0
 void StatusChanged(object sender, StatusChangeEventArgs args)
 {
     SCardMonitor monitor = (SCardMonitor)sender;
     //Console.WriteLine(">> StatusChanged Event for reader: " + args.ReaderName);
     //Console.WriteLine("   ATR: " + StringAtr(args.ATR));
     //Console.WriteLine("   Last state: " + args.LastState + "\n   New state: " + args.NewState + "\n");
 }
        private void _StatusChanged(StatusChangeEventArgs args)
        {
            if (args.NewState != SCRState.Present ||
                args.NewState == SCRState.InUse ||
                args.NewState == SCRState.Unpowered ||
                args.NewState == SCRState.Mute ||
                args.NewState == SCRState.Unavailable)
            {
                return;
            }


            try
            {
                Personal personal;
                if (eventCardInserted != null)
                {
                    personal = readAll();
                    eventCardInserted(personal);
                }
                if (eventCardInsertedWithPhoto != null)
                {
                    personal = readAllPhoto();
                    eventCardInsertedWithPhoto(personal);
                }
            }
            catch (PCSCException ex)
            {
                _error_code    = ECODE_SCardError;
                _error_message = "Err: " + ex.Message + " (" + ex.SCardError.ToString() + ")";
                Console.WriteLine(_error_message);
            }
        }
Exemple #8
0
 /// <summary>
 /// Handles the <see cref="ShipmentService"/> status changed
 /// </summary>
 /// <param name="sender">
 /// The sender.
 /// </param>
 /// <param name="e">
 /// The event args
 /// </param>
 private void ShipmentServiceOnStatusChanged(IShipmentService sender, StatusChangeEventArgs <IShipment> e)
 {
     foreach (var shipment in e.StatusChangedEntities)
     {
         shipment.AuditStatusChanged();
     }
 }
Exemple #9
0
 private void ShipmentServiceOnStatusChanged(IShipmentService sender, StatusChangeEventArgs <IShipment> statusChangeEventArgs)
 {
     foreach (var shipment in statusChangeEventArgs.StatusChangedEntities)
     {
         Notification.Trigger("OrderShipped", shipment, new[] { "*****@*****.**" });
     }
 }
        internal EventResponse(ResponseFrame frame)
            : base(frame)
        {
            string eventTypeString = BeBinaryReader.ReadString();
            if (eventTypeString == "TOPOLOGY_CHANGE")
            {
                var ce = new TopologyChangeEventArgs();
                ce.What = BeBinaryReader.ReadString() == "NEW_NODE"
                              ? TopologyChangeEventArgs.Reason.NewNode
                              : TopologyChangeEventArgs.Reason.RemovedNode;
                ce.Address = BeBinaryReader.ReadInet();
                CassandraEventArgs = ce;
                return;
            }
            if (eventTypeString == "STATUS_CHANGE")
            {
                var ce = new StatusChangeEventArgs();
                ce.What = BeBinaryReader.ReadString() == "UP"
                              ? StatusChangeEventArgs.Reason.Up
                              : StatusChangeEventArgs.Reason.Down;
                ce.Address = BeBinaryReader.ReadInet();
                CassandraEventArgs = ce;
                return;
            }
            if (eventTypeString == "SCHEMA_CHANGE")
            {
                HandleSchemaChange(frame);
                return;
            }

            var ex = new DriverInternalError("Unknown Event Type");
            _logger.Error(ex);
            throw ex;
        }
Exemple #11
0
 void setStatusChange(string newValue, string oldValue)
 {
     if (StatusChange != null)
     {
         StatusChangeEventArgs sdata = new StatusChangeEventArgs(new MonitorAttribute(newValue), new MonitorAttribute(oldValue), DateTime.Now);
         StatusChange(this, sdata);
     }
 }
Exemple #12
0
        /// <summary>
        /// Method to fire the status change event
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="data"></param>
        protected void OnPlexStatusChange(object sender, StatusChangeEventArgs data)
        {
            var handler = PlexStatusChange;

            //Check if event has been subscribed to
            if (handler != null)
            {
                //call the event
                handler(this, data);
            }
        }
Exemple #13
0
        private static void ApiOnStatusChanged(object sender, StatusChangeEventArgs statusChangeEventArgs)
        {
            using (var db = new WWContext())
            {
                var id = 1;

                var b = db.BotStatus.Find(id);
                b.Status      = statusChangeEventArgs.Status.ToString();
                CurrentStatus = b.Status;
                db.SaveChanges();
            }
        }
        private static void OnStatusChange(object sender, StatusChangeEventArgs e)
        {
            var requestComplete = false;

            Console.WriteLine($"Request status changed from '{e.PreviousState}' to '{e.CurrentState}'\n", true);

            switch (e.CurrentState)
            {
            case RequestStatus.Executing:
                totalRecords     = 0;
                requestStartTime = DateTime.Now;
                break;

            case RequestStatus.Receiving:
                requestResponseTime = DateTime.Now;
                break;

            case RequestStatus.ResponseComplete:
                responseTransmissionTime = DateTime.Now;
                break;

            case RequestStatus.Successful:
                responseCompletionTime = DateTime.Now;

                Console.WriteLine(
                    $"{totalRecords} record(s) processed in {responseCompletionTime.Subtract(requestStartTime)} total elapsed time\n",
                    true);
                Console.WriteLine($"- Response time:     {requestResponseTime.Subtract(requestStartTime)}\n", true);
                Console.WriteLine($"- Transmission time: {responseTransmissionTime.Subtract(requestResponseTime)}\n",
                                  true);

                requestComplete = true;
                break;

            case RequestStatus.Canceled:
                Console.WriteLine("Request cancelled by user.\n", true);
                requestComplete = true;
                break;

            case RequestStatus.Error:
                var request      = sender as Request;
                var errorMessage = request != null ? request.ErrorMessage : "unknown error";
                Console.WriteLine("Error executing request.\n- " + errorMessage + "\n", true);
                requestComplete = true;
                break;
            }

            if (requestComplete)
            {
                Console.WriteLine("Request completed!");
            }
        }
Exemple #15
0
 private void StatusChanged(object sender, StatusChangeEventArgs args)
 {
     if (this.Dispatcher.CheckAccess())
     {
         UpdateDataGrid();
     }
     else
     {
         this.Dispatcher.Invoke((Action)(() =>
         {
             UpdateDataGrid();
         }));
     }
 }
 private void OnStatusChanged(StatusChangeEventArgs args)
 {
     if (args.NewState != SCRState.Present ||
         args.NewState == SCRState.InUse ||
         args.NewState == SCRState.Unpowered ||
         args.NewState == SCRState.Mute ||
         args.NewState == SCRState.Unavailable ||
         IsExclusiveState(args.LastState) ||
         IsExclusiveState(args.NewState))
     {
         return;
     }
     ReadCard();
 }
Exemple #17
0
        internal EventResponse(ResponseFrame frame)
            : base(frame)
        {
            var eventTypeString = BEBinaryReader.ReadString();

            if (eventTypeString == "TOPOLOGY_CHANGE")
            {
                var ce = new TopologyChangeEventArgs();
                ce.What = BEBinaryReader.ReadString() == "NEW_NODE"
                              ? TopologyChangeEventArgs.Reason.NewNode
                              : TopologyChangeEventArgs.Reason.RemovedNode;
                ce.Address         = BEBinaryReader.ReadInet().Address;
                CassandraEventArgs = ce;
                return;
            }
            else if (eventTypeString == "STATUS_CHANGE")
            {
                var ce = new StatusChangeEventArgs();
                ce.What = BEBinaryReader.ReadString() == "UP"
                              ? StatusChangeEventArgs.Reason.Up
                              : StatusChangeEventArgs.Reason.Down;
                ce.Address         = BEBinaryReader.ReadInet().Address;
                CassandraEventArgs = ce;
                return;
            }
            else if (eventTypeString == "SCHEMA_CHANGE")
            {
                var ce = new SchemaChangeEventArgs();
                var m  = BEBinaryReader.ReadString();
                ce.What = m == "CREATED"
                              ? SchemaChangeEventArgs.Reason.Created
                              : (m == "UPDATED"
                                     ? SchemaChangeEventArgs.Reason.Updated
                                     : SchemaChangeEventArgs.Reason.Dropped);
                ce.Keyspace        = BEBinaryReader.ReadString();
                ce.Table           = BEBinaryReader.ReadString();
                CassandraEventArgs = ce;
                return;
            }

            var ex = new DriverInternalError("Unknown Event Type");

            _logger.Error(ex);
            throw ex;
        }
        internal EventResponse(ResponseFrame frame)
            : base(frame)
        {
            var eventTypeString = BEBinaryReader.ReadString();
            if (eventTypeString == "TOPOLOGY_CHANGE")
            {
                var ce = new TopopogyChangeEventArgs();
                ce.What = BEBinaryReader.ReadString() == "NEW_NODE"
                              ? TopopogyChangeEventArgs.Reason.NewNode
                              : TopopogyChangeEventArgs.Reason.RemovedNode;
                ce.Address = BEBinaryReader.ReadInet().Address;
                CassandraEventArgs = ce;
                return;
            }
            else if (eventTypeString == "STATUS_CHANGE")
            {
                var ce = new StatusChangeEventArgs();
                ce.What = BEBinaryReader.ReadString() == "UP"
                              ? StatusChangeEventArgs.Reason.Up
                              : StatusChangeEventArgs.Reason.Down;
                ce.Address = BEBinaryReader.ReadInet().Address;
                CassandraEventArgs = ce;
                return;
            }
            else if (eventTypeString == "SCHEMA_CHANGE")
            {
                var ce = new SchemaChangeEventArgs();
                var m = BEBinaryReader.ReadString();
                ce.What = m == "CREATED"
                              ? SchemaChangeEventArgs.Reason.Created
                              : (m == "UPDATED"
                                     ? SchemaChangeEventArgs.Reason.Updated
                                     : SchemaChangeEventArgs.Reason.Dropped);
                ce.Keyspace = BEBinaryReader.ReadString();
                ce.Table = BEBinaryReader.ReadString();
                CassandraEventArgs = ce;
                return;
            }

            var ex = new DriverInternalError("Unknown Event Type");
            _logger.Error(ex);
            throw ex;
        }
 void statusChanged(object sender, StatusChangeEventArgs args)
 {
     try
     {
         if ((args.NewState & SCRState.Present) != 0 && (args.NewState & SCRState.InUse) == 0 && (args.NewState & SCRState.Mute) == 0)
         {
             var(Success, Report) = Cx.GetUid(_contextFactory, args.ReaderName);
             tk1.Text            += "!UI Thread??";
             Application.Current.Dispatcher.BeginInvoke(new Action(() =>
             {
                 tk1.Text += Success ? $"{Report}\r\n" : $"{args.LastState,-18} ► {args.NewState,-18} + {BitConverter.ToString(args.Atr)} => {Report}\r\n";
                 if (Success)
                 {
                     GetUID_finis();
                 }
             }));
         }
     }
     catch (Exception ex) { tk1.Text += $"{ex.Message}\r\n";; }
 }
        internal EventResponse(ResponseFrame frame)
            : base(frame)
        {
            string eventTypeString = BeBinaryReader.ReadString();

            if (eventTypeString == "TOPOLOGY_CHANGE")
            {
                var ce = new TopologyChangeEventArgs();
                ce.What = BeBinaryReader.ReadString() == "NEW_NODE"
                              ? TopologyChangeEventArgs.Reason.NewNode
                              : TopologyChangeEventArgs.Reason.RemovedNode;
                ce.Address         = BeBinaryReader.ReadInet().Address;
                CassandraEventArgs = ce;
                return;
            }
            if (eventTypeString == "STATUS_CHANGE")
            {
                var ce = new StatusChangeEventArgs();
                ce.What = BeBinaryReader.ReadString() == "UP"
                              ? StatusChangeEventArgs.Reason.Up
                              : StatusChangeEventArgs.Reason.Down;
                ce.Address         = BeBinaryReader.ReadInet().Address;
                CassandraEventArgs = ce;
                return;
            }
            if (eventTypeString == "SCHEMA_CHANGE")
            {
                HandleSchemaChange(frame);
                return;
            }

            var ex = new DriverInternalError("Unknown Event Type");

            _logger.Error(ex);
            throw ex;
        }
Exemple #21
0
 private void Connection_StatusChange(object sender, StatusChangeEventArgs e)
 {
     UpdateConnectionStatus(e.NewStatus);
 }
 /// <summary>
 /// Handles the <see cref="ShipmentService"/> status changed
 /// </summary>
 /// <param name="sender">
 /// The sender.
 /// </param>
 /// <param name="e">
 /// The event args
 /// </param>
 private void ShipmentServiceOnStatusChanged(IShipmentService sender, StatusChangeEventArgs<IShipment> e)
 {
     foreach (var shipment in e.StatusChangedEntities)
     {
         shipment.AuditStatusChanged();
     }
 }
Exemple #23
0
 /// <summary>
 /// Raises the onstatuschange event.
 /// </summary>
 /// <param name="args">The <see cref="Rendition.StatusChangeEventArgs"/> instance containing the event data.</param>
 internal void raiseOnStatusChange( StatusChangeEventArgs args )
 {
     if( StatusChanged != null ) { StatusChanged( this, args ); };
 }
Exemple #24
0
 /// <summary>
 /// Raises the onbeforestatuschange event.
 /// </summary>
 /// <param name="args">The <see cref="Rendition.StatusChangeEventArgs"/> instance containing the event data.</param>
 internal void raiseOnBeforeStatusChange( StatusChangeEventArgs args )
 {
     if( StatusChanging != null ) { StatusChanging( this, args ); };
 }
Exemple #25
0
 void IReaderMonitor.OnStatusChanged(StatusChangeEventArgs args)
 {
 }
Exemple #26
0
        private void OnChanged(object sender, StatusChangeEventArgs e)
        {
            if (tvStatus.InvokeRequired)
            {
                tvStatus.Invoke((MethodInvoker) delegate
                {
                    OnChanged(sender, e);
                });
                return;
            }

            string[] parts = e.Key.Split('.');

            TreeNode rootNode = null;
            Dictionary <string, TreeNode> nodes = _nodes;

            foreach (string part in parts)
            {
                if (nodes != null && !nodes.ContainsKey(part))
                {
                    // Create child node.
                    TreeNode node = new TreeNode
                    {
                        Name = part,
                        Text = part,
                        Tag  = new Dictionary <string, TreeNode>()
                    };

                    // Store child node.
                    if (rootNode != null)
                    {
                        rootNode.Nodes.Add(node);
                    }
                    else
                    {
                        tvStatus.Nodes.Add(node);
                    }
                    nodes.Add(part, node);
                }

                // Get new root node.
                rootNode = nodes?[part];
                nodes    = rootNode?.Tag as Dictionary <string, TreeNode>;
            }

            // Update and show the final node.
            if (rootNode == null)
            {
                return;
            }
            if (e.NewValue == LocalStatusLogger.UNSET)
            {
                rootNode.Remove();
            }
            else
            {
                rootNode.Text = $"{parts[parts.Length - 1]}: {e.NewValueString}";
                rootNode.EnsureVisible();
                rootNode.Expand();
            }
        }
Exemple #27
0
 private void StatusChanged(object sender, StatusChangeEventArgs args)
 {
     EventCardStatus?.Invoke(args.NewState, args.LastState, args.ReaderName);
     Debug.WriteLine($">> StatusChanged Event for reader: {args.ReaderName}", "Card Status");
     Debug.WriteLine($"Last state: {args.LastState}\nNew state: {args.NewState}\n", "Card Status");
 }
 private void OrderStatusChanged(IOrderService sender, StatusChangeEventArgs <IOrder> args)
 {
     After = args.StatusChangedEntities.First();
 }
Exemple #29
0
 private void OnPcScStatusChangeEventReceived(object s, StatusChangeEventArgs a)
 {
     RaisePcScEvent(a.NewState, a.ReaderName);
 }
Exemple #30
0
 private void Callback_StateChange(object sender, StatusChangeEventArgs e)
 {
     _notifyIcon.ShowBalloonTip(2000, "Plex Service", e.Description, ToolTipIcon.Info);
 }
Exemple #31
0
 /// <summary>
 /// Method to fire the status change event
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="data"></param>
 protected void OnPlexStatusChange(object sender, StatusChangeEventArgs data)
 {
     PlexStatusChange?.Invoke(this, data);
 }
Exemple #32
0
 private static void StatusChanged(object sender, StatusChangeEventArgs args)
 {
     Console.WriteLine(">> StatusChanged Event for reader: {0}", args.ReaderName);
     Console.WriteLine("ATR: {0}", BitConverter.ToString(args.Atr ?? new byte[0]));
     Console.WriteLine("Last state: {0}\nNew state: {1}\n", args.LastState, args.NewState);
 }
 void viewer_StatusChange(object sender, StatusChangeEventArgs e)
 {
     e.StatusGuid = AsyncStatusChange(e.StatusText, e.Cursor);
 }
Exemple #34
0
 void Status_OnChange(Status sender, StatusChangeEventArgs e)
 {
     CallOnStatusChange(e.BaseStatistic);
 }
Exemple #35
0
 private void Chat_OnStatusChanged(object sender, StatusChangeEventArgs e)
 {
     userList1.UpdateItem(e.Client);
 }
 static void StatusChangeEventHandler(object sender, StatusChangeEventArgs e)
 {
     Console.WriteLine(e.Message);
 }
		private void ConnectionOnStatusChange(object sender, StatusChangeEventArgs e)
		{
			switch (e.NewStatus)
			{
				case Status.Disconnected:
					SendOutMessage(new DisconnectMessage());
					break;
				//case Status.Connected:
				//	SendOutMessage(new ConnectMessage());
				//	break;
				case Status.Connecting:
				case Status.Disconnecting:
				case Status.Retrying:
					break;
				case Status.Error:
					SendOutMessage(new ConnectMessage { Error = new InvalidOperationException(LocalizedStrings.Str2959) });
					break;
				default:
					SendOutError(LocalizedStrings.Str1838Params.Put(e.NewStatus));
					break;
			}
		}
Exemple #38
0
 /// <summary>
 /// Plex status change event handler, forward any status changes to the clients
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnPlexEvent(object sender, StatusChangeEventArgs e)
 {
     WriteToLog(e.Description);
 }
        /// <summary>
        /// Adds a flag with transaction.  This is the only proper way to add a flag (aka change status).
        /// </summary>
        /// <param name="_flagType">Type of the flag.</param>
        /// <param name="objectType">Type of the object: line, shipment, order.</param>
        /// <param name="objectId">The object id.</param>
        /// <param name="comments">The comments.</param>
        /// <param name="fcn">SQL connection.</param>
        /// <param name="flagTransaction">SQL transaction.</param>
        /// <returns>{error:0,desc:""}</returns>
        public static Dictionary<string, object> AddFlagWithTransaction(string _flagType, string objectType,
        string objectId, string comments, SqlConnection fcn, SqlTransaction flagTransaction)
        {
            ("FUNCTION /w SP,CN,TRANS,ADHOC insertFlagHistoryListItem").Debug(10);
            int tryParseResult = 0;
            Dictionary<string, object> j = new Dictionary<string, object>();
            if(!int.TryParse(objectId, out tryParseResult)) {
                j.Add("description", "objectId is not in the correct format, must be an int.");
                j.Add("error", 2);
                return j;
            }
            int flagType = Convert.ToInt32(_flagType);
            int error = 0;
            string desc = "";
            int previousFlagStatus = 0;
            Guid previousFlagId = Guid.Empty;
            /* make a new connection */
            SqlConnection cn;
            if(fcn == null) {
                cn = Site.CreateConnection(true, true);
                cn.Open();
                flagTransaction = cn.BeginTransaction("Change flag status");
            } else {
                cn = fcn;
            }
            try {
                SqlCommand cmd;
                string columnName = "";
                Guid newId = Guid.NewGuid();
                if(objectType == "line") {
                    columnName = "serialId";
                } else if(objectType == "shipment") {
                    columnName = "shipmentId";
                } else if(objectType == "order") {
                    columnName = "orderId";
                } else {
                    j.Add("description", "arguement object type must be order,shipment,line");
                    j.Add("error", 2);
                    return j;
                }
                if(flagType == 0) {
                    /* this is a comment so just insert it into the history list and don't trigger TR_LINE_DEPLETE_INVENTORY */
                    InsertFlagHistoryListItem(columnName, newId.ToString(), objectId, flagType, comments, cn, flagTransaction);
                    if(fcn == null) {
                        flagTransaction.Commit();
                    }
                    j.Add("description", "");
                    j.Add("error", 0);
                    return j;
                }
                if(objectType == "line") {
                    cmd = new SqlCommand(@"select lastFlagStatus, lastFlagId, lastErrorId
                        from serial_line
                        where serialId = @serialId;

                        update serial_line set
                        lastFlagId = @newId,
                        lastFlagStatus = @flagType
                        where serialId = @serialId", cn, flagTransaction);
                    cmd.Parameters.Add("@serialId", SqlDbType.Int).Value = Convert.ToInt32(objectId);
                    cmd.Parameters.Add("@flagType", SqlDbType.Int).Value = Convert.ToInt32(flagType);
                    cmd.Parameters.Add("@newId", SqlDbType.UniqueIdentifier).Value = new Guid(newId.ToString());
                    using(SqlDataReader d = cmd.ExecuteReader()) {
                        if(d.HasRows) {
                            d.Read();
                            previousFlagStatus = d.GetInt32(0);
                            previousFlagId = d.GetGuid(1);
                        }
                    }
                    cmd.Dispose();
                } else if(objectType == "shipment") {
                    cmd = new SqlCommand(@"select lastFlagStatus, lastFlagId, lastErrorId
                        from serial_shipment
                        where shipmentId = @shipmentId;

                        update serial_line set
                        lastFlagId = @newId,
                        lastFlagStatus = @flagType
                        where serialId in (
                            select serialId
                            from cart
                            where shipmentId = @shipmentId
                        );", cn, flagTransaction);
                    cmd.Parameters.Add("@shipmentId", SqlDbType.Int).Value = Convert.ToInt32(objectId);
                    cmd.Parameters.Add("@flagType", SqlDbType.Int).Value = Convert.ToInt32(flagType);
                    cmd.Parameters.Add("@newId", SqlDbType.UniqueIdentifier).Value = new Guid(newId.ToString());
                    using(SqlDataReader d = cmd.ExecuteReader()) {
                        if(d.HasRows) {
                            d.Read();
                            previousFlagStatus = d.GetInt32(0);
                            previousFlagId = d.GetGuid(1);
                        }
                    }
                    cmd.Dispose();
                } else if(objectType == "order") {
                    /* ensure input is an INT*/
                    cmd = new SqlCommand(@"select lastFlagStatus, lastFlagId
                        from serial_order
                        where orderId = @orderId;

                        update serial_line set
                        lastFlagId = @newId,
                        lastFlagStatus = @flagType
                        where serialId in (
                            select serialId
                            from cart
                            where orderId = @orderId
                        );", cn, flagTransaction);
                    cmd.Parameters.Add("@orderId", SqlDbType.Int).Value = Convert.ToInt32(objectId);
                    cmd.Parameters.Add("@flagType", SqlDbType.Int).Value = Convert.ToInt32(flagType);
                    cmd.Parameters.Add("@newId", SqlDbType.UniqueIdentifier).Value = new Guid(newId.ToString());
                    using(SqlDataReader d = cmd.ExecuteReader()) {
                        if(d.HasRows) {
                            d.Read();
                            previousFlagStatus = d.GetInt32(0);
                            previousFlagId = d.GetGuid(1);
                        }
                    }
                    cmd.Dispose();
                }
                /*if the row could not be updated then the status was not acceptable to the inventory triggers*/
                cmd = new SqlCommand("select 0 from serial_line where lastFlagId = @newId", cn, flagTransaction);
                cmd.Parameters.Add("@newId", SqlDbType.UniqueIdentifier).Value = new Guid(newId.ToString());
                using(SqlDataReader d = cmd.ExecuteReader()) {
                    if(!d.HasRows) {
                        error = 1;
                        desc = "";
                    }
                }
                cmd.Dispose();
                if(error == 0) {
                    /* update other tables in the serial hierarchy else */
                    if(objectType == "shipment") {
                        cmd = new SqlCommand(@"update serial_shipment set
                            lastFlagId = @newId,
                            lastFlagStatus = @flagType
                            where shipmentId = @shipmentId", cn, flagTransaction);
                        cmd.Parameters.Add("@shipmentId", SqlDbType.Int).Value = Convert.ToInt32(objectId);
                        cmd.Parameters.Add("@flagType", SqlDbType.Int).Value = Convert.ToInt32(flagType);
                        cmd.Parameters.Add("@newId", SqlDbType.UniqueIdentifier).Value = new Guid(newId.ToString());
                        cmd.ExecuteNonQuery();
                        cmd.Dispose();
                    } else if(objectType == "order") {
                        cmd = new SqlCommand(@"update serial_shipment set
                            lastFlagId = @newId,
                            lastFlagStatus = @flagType
                            where shipmentId in (
                                select shipmentId
                                from cart
                                where orderid = @orderId
                            );

                            update serial_order set
                            lastFlagId = @newId,
                            lastFlagStatus = @flagType
                            where orderId = @orderId;", cn, flagTransaction);
                        cmd.Parameters.Add("@orderId", SqlDbType.Int).Value = Convert.ToInt32(objectId);
                        cmd.Parameters.Add("@flagType", SqlDbType.Int).Value = Convert.ToInt32(flagType);
                        cmd.Parameters.Add("@newId", SqlDbType.UniqueIdentifier).Value = new Guid(newId.ToString());
                        cmd.ExecuteNonQuery();
                        cmd.Dispose();
                    }
                    /* add to the flag history list */
                    InsertFlagHistoryListItem(columnName, newId.ToString(), objectId, flagType, comments, cn, flagTransaction);
                    StatusChangeEventArgs e = new StatusChangeEventArgs(objectType, objectId, previousFlagStatus, flagType, previousFlagId, newId, cn, flagTransaction);
                    Main.Site.raiseOnStatusChange(e);
                    if(Site.AbortDefaultEvent == true) {
                        Site.AbortDefaultEvent = false;
                    } else {
                        if(fcn == null) {
                            flagTransaction.Commit();
                        }
                    }
                } else {
                    using(cmd = new SqlCommand(@"select top 1 lastErrorId
                            from serial_line
                            where serialId in (select serialId from cart where " + columnName + " = @objectId)", cn, flagTransaction)) {
                        cmd.Parameters.Add("@objectId", SqlDbType.Int).Value = Convert.ToInt32(objectId);
                        using(SqlDataReader d = cmd.ExecuteReader()) {
                            if(d.HasRows) {
                                d.Read();
                                error = d.GetInt32(0);
                                desc = "ERROR:" + error.ToString() + " -> UNKNOWN SERIAL_LINE.TR_LINE_DEPLETE_INVENTORY ERROR";
                                switch(error) {
                                    case 1: desc = "One or more of the items in your order is out of stock and cannot be changed to this status"; break;
                                    case 2: desc = "This order has been closed and cannot be modified."; break;
                                    case 3: desc = "This order has already passed though a status that makes it so you cannot change it to the status you selected."; break;
                                    case 4: desc = "This order cannot be changed to the status you selected until it has passed though another status."; break;
                                    case 5: desc = "This order is already in the status you selected."; break;
                                    case 6: desc = "orders are not allowed to change once they are canceled."; break;
                                    case 7: desc = "orders are not allowed to change once they are closed."; break;
                                    case 8: desc = "error during recalculation when canceling an order."; break;
                                }
                                Exception e = new Exception(desc);
                                throw e;
                            } else {
                                Exception e = new Exception("Missing serial_line PK - terminal error.  Possible database corruption.");
                                throw e;
                            }
                        }

                    }

                }
                j.Add("flagId", newId);
                j.Add("flagType", flagType);
                j.Add("description", desc);
                j.Add("error", error);
            } catch(Exception e) {
                if(fcn == null) {
                    flagTransaction.Rollback();
                }
                j.Add("description", e.Message);
                j.Add("error", -1);
            }
            if(fcn == null) {
                /* don't close the foreign connection */
                cn.Dispose();
            }
            return j;
        }
Exemple #40
0
 private void Owner_StatusChanged(Contact sender, StatusChangeEventArgs e)
 {
     UpdateLogginLabel();
 }