public static Response HandleRequest(Request request)
        {
            RequestTypes reqType = request.RequestType;
            int          id      = request.Id;
            DateTime     dt      = request.Datetime;
            double       val     = request.Value;

            switch (reqType)
            {
            case RequestTypes.CREATE:
            {
                return(Create(id, dt, val));
            }

            case RequestTypes.READ:
            {
                return(Read(id));
            }

            case RequestTypes.UPDATE:
            {
                return(Update(id, dt, val));
            }

            case RequestTypes.DELETE:
            {
                return(Delete(id));
            }

            default:
                throw new Exception();
            }
        }
    public void SendRequest(RequestTypes reqType)
    {
        char sendChar = v_cardTypeRequest;

        /*switch (variant) {
         * case 0:
         *      sendChar = v_tap;
         *      break;
         * case 1:
         *      sendChar = v_slide;
         *      break;
         * case -1:
         *      sendChar = v_cardTypeRequest;
         *      break;
         * default:
         *      sendChar = v_tap;
         *      break;
         * }*/

        try {
            List <byte> toSend = new List <byte> ();
            toSend.Add((byte)sendChar);

            SendData(a_request, toSend.ToArray());
        } catch (Exception e) {
            DataLogger.LogError(this.name, e);
        }
    }
Example #3
0
        /// <summary>
        /// Sends the request encrypted.
        /// </summary>
        /// <param name="requestData">The request data.</param>
        public void SendRequest <T>(RequestTypes requestType, T request, bool encrypted) where T : class
        {
            //string requestString = XmlSerializationHelper.Serialize<T>(request);

            //RequestHeader header = null;

            //byte[] publicKey = null;

            //if( encrypted )
            //{
            //    header = RequestBuilder.BuildRequestHeader(
            //        EncryptionTypes.Aes,
            //        CompressionTypes.None,
            //        requestType);

            //    publicKey = EncryptionHelper.EncodeKeyParameter(
            //        _serverAuthority.GetPublicKeyParameter());

            //    header.MessageHeader.EncryptionHeader.PublicKey = publicKey;

            //} else
            //{
            //    header = RequestBuilder.BuildRequestHeader(
            //        EncryptionTypes.None,
            //        CompressionTypes.None,
            //        requestType);
            //}

            //_socket.SendData(XmlSerializationHelper.Serialize<RequestHeader>(header));
            //_socket.SendData(RequestBuilder.ProcessRequest(
            //                    _serverAuthority,
            //                    _serverPublicKey,
            //                    header,
            //                    XmlSerializationHelper.Serialize<T>(request)));
        }
Example #4
0
 public override void Connect()
 {
     if (wSocket != null)
     {
         HTTPManager.Logger.Warning("WebSocketTransport", "Start - WebSocket already created!");
     }
     else
     {
         if (base.State != TransportStates.Reconnecting)
         {
             base.State = TransportStates.Connecting;
         }
         RequestTypes type = (base.State != TransportStates.Reconnecting) ? RequestTypes.Connect : RequestTypes.Reconnect;
         Uri          uri  = base.Connection.BuildUri(type, this);
         wSocket = new VRC.Core.BestHTTP.WebSocket.WebSocket(uri);
         VRC.Core.BestHTTP.WebSocket.WebSocket webSocket = wSocket;
         webSocket.OnOpen = (OnWebSocketOpenDelegate)Delegate.Combine(webSocket.OnOpen, new OnWebSocketOpenDelegate(WSocket_OnOpen));
         VRC.Core.BestHTTP.WebSocket.WebSocket webSocket2 = wSocket;
         webSocket2.OnMessage = (OnWebSocketMessageDelegate)Delegate.Combine(webSocket2.OnMessage, new OnWebSocketMessageDelegate(WSocket_OnMessage));
         VRC.Core.BestHTTP.WebSocket.WebSocket webSocket3 = wSocket;
         webSocket3.OnClosed = (OnWebSocketClosedDelegate)Delegate.Combine(webSocket3.OnClosed, new OnWebSocketClosedDelegate(WSocket_OnClosed));
         VRC.Core.BestHTTP.WebSocket.WebSocket webSocket4 = wSocket;
         webSocket4.OnErrorDesc = (OnWebSocketErrorDescriptionDelegate)Delegate.Combine(webSocket4.OnErrorDesc, new OnWebSocketErrorDescriptionDelegate(WSocket_OnError));
         base.Connection.PrepareRequest(wSocket.InternalRequest, type);
         wSocket.Open();
     }
 }
 /// <summary>
 /// NOTE: for now request message is string but we'll change it to an interface that is capable of translating itself into xml!
 /// </summary>
 /// <param name="transactionId"></param>
 /// <param name="_requestDateTime"></param>
 /// <param name="_requestType"></param>
 /// <param name="requestMessage"></param>
 public BaseRequest(Guid transactionId, DateTime requestDateTime, RequestTypes requestType, RequestMessageBase requestMessage)
 {
     _transactionId   = transactionId;
     _requestDateTime = requestDateTime;
     _requestType     = requestType;
     _requestMessage  = requestMessage;
 }
        /// <summary>
        /// Gets the type of request based on the call type
        /// </summary>
        /// <param name="callType">The call type to be evaluated</param>
        private static RequestTypes GetRequestType(CallTypes callType)
        {
            RequestTypes requestType = RequestTypes.StandardGetRequest;

            switch (callType)
            {
            case CallTypes.NewAuthorization:
                requestType = RequestTypes.NewToken;
                break;

            case CallTypes.RefreshAuthorization:
                requestType = RequestTypes.RefreshToken;
                break;

            case CallTypes.Command:
                requestType = RequestTypes.StandardPostRequest;
                break;

            case CallTypes.Request:
                requestType = RequestTypes.StandardGetRequest;
                break;
            }

            return(requestType);
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,RequestTypeDescription,LastUpdated,Active,Team")] RequestTypes requestTypes)
        {
            if (id != requestTypes.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(requestTypes);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!RequestTypesExists(requestTypes.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["Team"] = new SelectList(_context.Teams, "Id", "TeamDescription", requestTypes.Team);
            return(View(requestTypes));
        }
        internal async Task SendRequestAsync(RequestTypes type, Memory <byte> data, CancellationToken cancellationToken = default(CancellationToken))
        {
            const int length = 8;

            void WriteBuffer(Memory <byte> memory)
            {
                var span = memory.Span;

                span.Write(data.Length / 8)
                .Write((byte)type)
                .Write(REVISION);
            }

            if (data.Length % length != 0)
            {
                throw new InvalidOperationException();
            }

            using (var slot = MemoryPool <byte> .Shared.Rent(length))
            {
                var headerMemory = slot.Memory.Slice(0, length);
                WriteBuffer(headerMemory);
                await this.stream.WriteAsync(headerMemory, cancellationToken);

                await this.stream.WriteAsync(data, cancellationToken);
            }
        }
Example #9
0
        public override void Connect()
        {
            if (EventSource != null)
            {
                HTTPManager.Logger.Warning("ServerSentEventsTransport", "Start - EventSource already created!");
                return;
            }

            // Skip the Connecting state if we are reconnecting. If the connect succeeds, we will set the Started state directly
            if (this.State != TransportStates.Reconnecting)
            {
                this.State = TransportStates.Connecting;
            }

            RequestTypes requestType = this.State == TransportStates.Reconnecting ? RequestTypes.Reconnect : RequestTypes.Connect;

            Uri uri = Connection.BuildUri(requestType, this);

            EventSource = new EventSource(uri);

            EventSource.OnOpen    += OnEventSourceOpen;
            EventSource.OnMessage += OnEventSourceMessage;
            EventSource.OnError   += OnEventSourceError;
            EventSource.OnClosed  += OnEventSourceClosed;

#if !UNITY_WEBGL || UNITY_EDITOR
            // Disable internal retry
            EventSource.OnRetry += (es) => false;
#endif

            // Start connecting to the server.
            EventSource.Open();
        }
        public IPaymentProcessor CreateProcessor(RequestTypes requestTypes)
        {
            IPaymentProcessor paymentProcessor = null;

            switch (requestTypes)

            {
            case RequestTypes.Books:
            {
                paymentProcessor = new BookProcessor(_logger, _componentSupplier.GetComponents());
                break;
            }

            case RequestTypes.MemberShips:
            {
                paymentProcessor = new MemberShipProcessor(_logger, _componentSupplier.GetComponents());
                break;
            }

            case RequestTypes.UpgradeMemberShip:
            {
                paymentProcessor = new UpgradeMemberShipProcesor(_logger, _componentSupplier.GetComponents());
                break;
            }

            case RequestTypes.PhysicalProduct:
            {
                paymentProcessor = new PhysicalProductProcessor(_logger, _componentSupplier.GetComponents());
                break;
            }
            }


            return(paymentProcessor);
        }
Example #11
0
        //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        public static void SendRegularRequest(RequestTypes requestType, ByteBuffer requestBuffer, RequestParseCallback requestParseCallback, RequestViewCallback requestViewCallback)
        {
            if (requestType == RequestTypes.ReconnectToServer)
            {
                Init();
                requestViewCallback?.Invoke(RequestStates.Completed);
                return;
            }

            if ((DateTime.Now - lastPingTime).TotalMilliseconds > Settings.pingValueLifeTime * 3)
                Init();

            if ((connectState != ConnectStates.AuthPassed) && (userToken == null) && (login == null))
                return;

            sendPacketBuffer.Reset((int)HeaderOffsets.SecondEnd);

            sendPacketBuffer.Add((byte)ClientPacketTypes.Request);
            sendPacketBuffer.Add((byte)requestType);

            if (requestBuffer != null)
                sendPacketBuffer.AddBytes(requestBuffer, 0);

            SendRequestToServer(requestParseCallback, requestViewCallback);

            if (WaitForPacket(ClientPacketTypes.RequestAnswer, waitPacketTimeout) == false)
            {
                Console.WriteLine("socket.Connected: " + socket.Connected);
                socket.Disconnect(false);
                ConnectToServer();
            }

            Update();
        }
        /// <summary>
        /// Websocket transport specific connection logic. It will create a WebSocket instance, and starts to connect to the server.
        /// </summary>
        public override void Connect()
        {
            if (wSocket != null)
            {
                HTTPManager.Logger.Warning("WebSocketTransport", "Start - WebSocket already created!");
                return;
            }

            // Skip the Connecting state if we are reconnecting. If the connect succeeds, we will set the Started state directly
            if (this.State != TransportStates.Reconnecting)
            {
                this.State = TransportStates.Connecting;
            }

            RequestTypes requestType = this.State == TransportStates.Reconnecting ? RequestTypes.Reconnect : RequestTypes.Connect;

            Uri uri = Connection.BuildUri(requestType, this);

            // Create the WebSocket instance
            wSocket = new WebSocket.WebSocket(uri);

            // Set up eventhandlers
            wSocket.OnOpen      += WSocket_OnOpen;
            wSocket.OnMessage   += WSocket_OnMessage;
            wSocket.OnClosed    += WSocket_OnClosed;
            wSocket.OnErrorDesc += WSocket_OnError;

#if !UNITY_WEBGL || UNITY_EDITOR
            // prepare the internal http request
            Connection.PrepareRequest(wSocket.InternalRequest, requestType);
#endif

            // start opening the websocket protocol
            wSocket.Open();
        }
Example #13
0
        public void TestSocketPayloadSerialization()
        {
            var serializer = new SocketPayloadSerializer();

            const RequestTypes type   = RequestTypes.Test;
            const int          intVal = 5;

            var payload = new TestRequest
            {
                Type       = type,
                RequestInt = intVal
            };

            string data;

            Assert.IsTrue(serializer.Serialize(payload, out data));
            Assert.IsNotNull(data);

            TestRequest deserialized;

            Assert.IsTrue(serializer.Deserialize(data, out deserialized));
            Assert.IsNotNull(deserialized);
            Assert.AreEqual(payload.Type, deserialized.Type);
            Assert.AreEqual(payload.RequestInt, deserialized.RequestInt);
        }
Example #14
0
        //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        public static void Login(ByteBuffer buffer, RequestViewCallback requestViewCallback)
        {
            RequestTypes requestType = (RequestTypes)buffer.GetByte();

            if ((requestType != RequestTypes.AuthByLogin) && (requestType != RequestTypes.AuthByToken))
            {
                if (requestType == RequestTypes.Error)
                {
                    Client.Log(buffer.GetLongString());
                }
                return;
            }

            connectState = ConnectStates.AuthPassed;

            ushort serverVersion = buffer.GetUShort();

            serverName = buffer.GetShortString();
            userName   = buffer.GetShortString();

            if (requestType == RequestTypes.AuthByLogin)
            {
                userToken = buffer.GetShortString();
                Client.Log("Get token: " + userToken);
            }

            if (Settings.serverVersion != serverVersion)
            {
                Client.Log("Версии клиента и сервера различаются " + serverVersion + " - " + Settings.serverVersion + ". Обновите клиент", LogTypes.Error);
            }

            Client.Log("Auth success. Server version: " + serverVersion);
        }
 public Request(DateTime date_, RequestTypes type_, int company_id_, string api_key_)
 {
     date = date_;
     type.Add(type_);
     company_id = company_id_;
     api_key    = api_key_;
 }
Example #16
0
        }         // constructor

        public Request(RequestTypes requestType, DateTime time, ASafeLog log)
        {
            RequestType = requestType;
            Time        = time;

            log.Debug("New request created: {0}", this);
        }         // constructor
        private string mapUri(RequestTypes requestType)
        {
            return(requestType switch
            {
                RequestTypes.CreateBrn => "brn/createBRN",
                RequestTypes.UpdateBrn => "brn/updateBRN",
                RequestTypes.CreateAccount => "accounts/createAccount",
                RequestTypes.AccountEmailInvites => "accounts/SendAccountInvites",
                RequestTypes.RequestAccountOTP => "accounts/RequestAccountOTP",
                RequestTypes.CreateDepartment => "departments/CreateDepartment",
                RequestTypes.CreateIndividual => "individuals/CreateIndividual",
                RequestTypes.UpdateIndividual => "individuals/UpdateIndividual",
                RequestTypes.ConfigureEndpoint => "endpoint/SetupEndpoint",
                RequestTypes.CreateNominationDriver => "nominations/CreateNominatedDriver",
                RequestTypes.UpdateNominationDriver => "nominations/UpdateNominatedDriver",
                RequestTypes.CreateVehicle => "vehicles/CreateVehicle",
                RequestTypes.UpdateVehicle => "vehicles/UpdateVehicle",
                RequestTypes.CreateDealerStock => "DealerStock/CreateDealerStockInstruction",
                RequestTypes.ActivateVehicle => "vehicles/ActivateVehicle",
                RequestTypes.DeactivateVehicle => "vehicles/DeactivateVehicle",
                RequestTypes.CreateQuote => "instructions/CreateQuote",
                RequestTypes.UploadDocuments => "documents/UploadDocuments",

                _ => throw new Exception("Invalid endpoint url")
            });
        /// <summary>
        /// Конвертирует RequestTypes в строку для JSON запроса.
        /// </summary>
        public static string EnumTypeToString(RequestTypes type)
        {
            switch (type)
            {
            case RequestTypes.AddGame:
                return(RequestJsonTypes.AddGame);

            case RequestTypes.Shot:
                return(RequestJsonTypes.Shot);

            case RequestTypes.SetField:
                return(RequestJsonTypes.SetField);

            case RequestTypes.GetGames:
                return(RequestJsonTypes.GetGames);

            case RequestTypes.JoinTheGame:
                return(RequestJsonTypes.JoinTheGame);

            case RequestTypes.Ping:
                return(RequestJsonTypes.Ping);

            case RequestTypes.BadRequest:
                throw new ArgumentException("Невозможно преобразовать BadRequest", nameof(type));
            }

            throw new ArgumentException($"Тип не определён, тип - {type.ToString()}.", nameof(type));
        }
        public IActionResult CheckCommits(GitHubInformationForm form, RequestTypes request)
        {
            var            commintsNumber = 10;
            IList <Commit> commits        = new List <Commit>();
            var            url            = string.Empty;

            if (!string.IsNullOrEmpty(form.UserName) && !string.IsNullOrEmpty(form.RepositoryName))
            {
                var gihubSettings = new GitHubSettings {
                    UserName = form.UserName, RepositoryName = form.RepositoryName, RequestType = request
                };
                url = _urlGenerator.GenerateUrlForGitHubApi(gihubSettings);
                try
                {
                    commits = _githubService.ProcessCommits(url);
                    if (commits.Any())
                    {
                        commits = commits.OrderByDescending(c => c.PurpleCommit.Committer.DateOfCommit).Take(commintsNumber).ToList();
                    }
                }
                catch (Exception ex)
                {
                    ViewBag.InnerException = ex.Message;
                }
            }

            return(PartialView("_Commits", commits));
        }
Example #20
0
        public NetDataRequest(RequestTypes type, Dictionary <string, ObjectWrapper> values)
        {
            Type   = type;
            Values = values;

            Result = RequestResult.Ok;
        }
Example #21
0
 private PaymentRequest GetPaymentRequest(RequestTypes requestTypes)
 {
     return(new PaymentRequest
     {
         Amount = amount,
         RequestType = requestTypes
     });
 }
Example #22
0
 /// <summary>
 /// The base of the Request class
 /// </summary>
 /// <param name="reqType"></param>
 /// <param name="path"></param>
 /// <returns></returns>
 protected KeepaRequest GetBaseRequest(ApiSpecificRequestTypes reqType, string path)
 {
     //KeepaRequest r = new KeepaRequest();
     this.RequestType      = RequestTypes.Keepa;
     this.KeepaRequestType = reqType;
     this.path             = path;
     return(this);
 }
Example #23
0
 public TNTShipRequest(DateTime CollectionDate, RequestTypes requestType, TNTPackageAnalyser pa, bool Debug = false)
 {
     this.reqestType = requestType;
     this.pa         = pa;
     this.Debug      = Debug;
     this.xml        = new MyXMLDocument();
     dateformatinfo  = new DateTimeFormatInfo(); //neutral culture, it has / as date separator
     MakeFixedElements(CollectionDate);
 }
        // GET: RequestTypes/Create
        public IActionResult Create()
        {
            ViewData["Team"] = new SelectList(_context.Teams, "Id", "TeamDescription");
            var model = new RequestTypes();

            model.LastUpdated = System.DateTime.Now;
            model.Active      = true;

            return(View(model));
        }
 public DbCommand(PaDbContext context, RequestTypes command, NetworkStream stream)
 {
     _command        = command;
     _stream         = stream;
     depsRepo        = new DepartmentRepository(context);
     positionsRepo   = new PositionRepository(context);
     empsRepo        = new EmployeeRepository(context);
     payoutTypesRepo = new PayoutTypeRepository(context);
     payoutsRepo     = new PayoutRepository(context);
 }
Example #26
0
 public Query(RequestTypes requestType)
 {
     RequestType = requestType;
     _keywords   = null;
     _year       = null;
     _language   = null;
     _region     = null;
     _type       = null;
     _id         = null;
 }
Example #27
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="more">Is more data available.</param>
 /// <param name="cmd"> Received command.</param>
 /// <param name="buff">Received data.</param>
 /// <param name="complete">Is frame complete.</param>
 /// <param name="error">Received error ID.</param>
 internal GXReplyData(RequestTypes more, Command cmd, GXByteBuffer buff, bool complete, byte error)
 {
     Data = new GXByteBuffer();
     Clear();
     MoreData = more;
     Command = cmd;
     Data = buff;
     IsComplete = complete;
     Error = error;
 }
Example #28
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="more">Is more data available.</param>
 /// <param name="cmd"> Received command.</param>
 /// <param name="buff">Received data.</param>
 /// <param name="complete">Is frame complete.</param>
 /// <param name="error">Received error ID.</param>
 internal GXReplyData(RequestTypes more, Command cmd, GXByteBuffer buff, bool complete, byte error)
 {
     Data = new GXByteBuffer();
     Clear();
     MoreData   = more;
     Command    = cmd;
     Data       = buff;
     IsComplete = complete;
     Error      = error;
 }
Example #29
0
        public static ReturnT PerformJsonRequest <ReturnT>(string url, RequestTypes method, object postData)
        {
            //Initilize the http request
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

            req.ContentType = "application/json";
            req.Method      = Enum.GetName(typeof(RequestTypes), method);


            //If posting data - serialize it to a json object
            if (method != RequestTypes.Get)
            {
                StringBuilder sbJsonRequest = new StringBuilder();
                var           T             = postData.GetType();
                foreach (var prop in T.GetProperties())
                {
                    if (NativeTypes.Contains(prop.PropertyType))
                    {
                        sbJsonRequest.AppendFormat("\"{0}\":\"{1}\",", prop.Name.ToLower(), prop.GetValue(postData, null));
                    }
                }

                using (var sWriter = new StreamWriter(req.GetRequestStream()))
                {
                    sWriter.Write("{" + sbJsonRequest.ToString().TrimEnd(',') + "}");
                }
            }

            //Submit the Http Request
            string responseJson = "";

            try
            {
                using (var wResponse = req.GetResponse())
                {
                    StreamReader sReader = new StreamReader(wResponse.GetResponseStream());
                    responseJson = sReader.ReadToEnd();
                }
            }
            catch (WebException ex)
            {
                using (WebResponse response = ex.Response)
                {
                    StreamReader sReader = new StreamReader(response.GetResponseStream());
                    responseJson = sReader.ReadToEnd();
                }
            }

            if (typeof(ReturnT) == typeof(string))
            {
                return((ReturnT)Convert.ChangeType(responseJson, typeof(ReturnT)));
            }

            return(fastJSON.JSON.Instance.ToObject <ReturnT>(responseJson));
        }
Example #30
0
        public Request CreateRequest(Request request, RequestTypes requestType)
        {
            request.CreatedUtc      = DateTime.UtcNow;
            request.LastModifiedUtc = DateTime.UtcNow;
            request.Status          = (int)RequestStatus.New;
            request.RequestType     = (int)requestType;
            Repo.Add <Request>(request);
            Repo.SaveChanges();

            return(request);
        }
Example #31
0
        public BaseResponseData(RequestTypes request, RequestResult result, Dictionary <string, object> data)
        {
            Request = request;
            Result  = result;
            Data    = data;

            if (data.Count == 0)
            {
                Data = null;
            }
        }
Example #32
0
 /// <summary>
 ///     Constructor for Request
 /// </summary>
 /// <param name="request">request type (enum)</param>
 /// <param name="trackControllerID">track controller id</param>
 /// <param name="trainID">train id</param>
 /// <param name="authority">authority/speed limit</param>
 /// <param name="route">route information</param>
 /// <param name="block">block information</param>
 public Request(RequestTypes request, int trackControllerID,
                int trainID, int authority, double speed, IRoute route,
                IBlock block)
 {
     _requestType = request;
     _trackControllerID = trackControllerID;
     _trainID = trainID;
     _trainAuthority = authority;
     _trainRoute = route;
     _block = block;
     _issueDateTime = DateTime.Now;
     Info = null;
     _trainSpeed = speed;
 }
Example #33
0
        public static RequestHeader BuildRequestHeader(EncryptionTypes encryptionType, CompressionTypes compressionType, RequestTypes requestType)
        {
            // first create headers
            EncryptionHeader encryptionHeader = new EncryptionHeader()
            {
                EncryptionType = encryptionType
            };

            MessageHeader messageHeader = new MessageHeader()
            {
                CompressionType = compressionType,
                EncryptionHeader = encryptionHeader
            };

            RequestHeader requestHeader = new RequestHeader()
            {
                RequestType = requestType,
                MessageHeader = messageHeader
            };

            // send response header first
            return requestHeader;
        }
		private static RequestBodyBuilder PopulateRequestParameters(UserOrganizationRequest org, RequestTypes requestType)
		{
			org.EnsureValidData(requestType);

			RequestBodyBuilder parameters = new RequestBodyBuilder();

			parameters.AppendRequestData("name", org.Name);
			parameters.AppendRequestData("organizationtype", EnumUtility.ToApiString(org.OrganizationType));

			if (!String.IsNullOrEmpty(org.Address))
			{
				parameters.AppendRequestData("address", org.Address);
			}

			if (!String.IsNullOrEmpty(org.City))
			{
			parameters.AppendRequestData("city", org.City);
			}

			if (!String.IsNullOrEmpty(org.State))
			{
			parameters.AppendRequestData("state", org.State);
			}

			if (!String.IsNullOrEmpty(org.PostalCode))
			{
			parameters.AppendRequestData("postalcode", org.PostalCode);
			}

			if (!String.IsNullOrEmpty(org.Country))
			{
			parameters.AppendRequestData("country", org.Country);
			}

			if (!String.IsNullOrEmpty(org.Phone))
			{
			parameters.AppendRequestData("phone", org.Phone);
			}

			if (!String.IsNullOrEmpty(org.Fax))
			{
			parameters.AppendRequestData("fax", org.Fax);
			}

			if (!String.IsNullOrEmpty(org.Website))
			{
			parameters.AppendRequestData("website", org.Website);
			}

			if (org.SlaPlanId != null)
			{
			parameters.AppendRequestData("slaplanid", org.SlaPlanId);
			}

			if (org.SlaPlanExpiry != null)
			{
			parameters.AppendRequestData("slaplanexpiry", org.SlaPlanExpiry);
			}

			return parameters;
		}
Example #35
0
 /// <summary>
 /// Creates an Uri instance for the given request type.
 /// </summary>
 Uri IConnection.BuildUri(RequestTypes type)
 {
     return (this as IConnection).BuildUri(type, null);
 }
		private RequestBodyBuilder PopulateRequestParameters(TroubleshooterAttachmentRequest troubleshooterAttachmentRequest, RequestTypes requestType)
		{
			troubleshooterAttachmentRequest.EnsureValidData(requestType);

			RequestBodyBuilder parameters = new RequestBodyBuilder();
			parameters.AppendRequestDataNonNegativeInt("troubleshooterstepid", troubleshooterAttachmentRequest.TroubleshooterStepId);
			parameters.AppendRequestDataNonEmptyString("filename", troubleshooterAttachmentRequest.FileName);
			parameters.AppendRequestDataNonEmptyString("contents", troubleshooterAttachmentRequest.Contents);

			return parameters;
		}
		private RequestBodyBuilder PopulateRequestParameters(TroubleshooterStepRequest troubleshooterStepRequest, RequestTypes requestType)
		{
			troubleshooterStepRequest.EnsureValidData(requestType);

			RequestBodyBuilder parameters = new RequestBodyBuilder();

			if (requestType == RequestTypes.Create)
			{
				parameters.AppendRequestData("categoryid", troubleshooterStepRequest.CategoryId);
			}

			parameters.AppendRequestDataNonEmptyString("subject", troubleshooterStepRequest.Subject);
			parameters.AppendRequestDataNonEmptyString("contents", troubleshooterStepRequest.Contents);

			parameters.AppendRequestDataNonNegativeInt(requestType == RequestTypes.Create ? "staffid" : "editedstaffid",
			                                           troubleshooterStepRequest.StaffId);

			if (troubleshooterStepRequest.DisplayOrder.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("displayorder", troubleshooterStepRequest.DisplayOrder.Value);
			}

			parameters.AppendRequestDataBool("allowcomments", troubleshooterStepRequest.AllowComments);
			parameters.AppendRequestDataBool("enableticketredirection", troubleshooterStepRequest.EnableTicketRedirection);

			if (troubleshooterStepRequest.RedirectDepartmentId.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("redirectdepartmentid", troubleshooterStepRequest.RedirectDepartmentId.Value);
			}

			if (troubleshooterStepRequest.TicketTypeId.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("tickettypeid", troubleshooterStepRequest.TicketTypeId.Value);
			}

			if(troubleshooterStepRequest.TicketPriorityId.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("ticketpriorityid", troubleshooterStepRequest.TicketPriorityId.Value);
			}

			parameters.AppendRequestDataNonEmptyString("ticketsubject", troubleshooterStepRequest.TicketSubject);
			
			if (troubleshooterStepRequest.StepStatus.HasValue)
			{
				parameters.AppendRequestData("stepstatus", EnumUtility.ToApiString(troubleshooterStepRequest.StepStatus.Value));
			}

			parameters.AppendRequestDataArrayCommaSeparated("parentstepidlist", troubleshooterStepRequest.ParentStepIdList);

			return parameters;
		}
Example #38
0
        private static XElement SerializeXml(RequestTypes type, IRequestData data)
        {
            switch (type)
            {
                case RequestTypes.METAR:
                    var metarData = data as METAR;
                    if (metarData != null)
                    {
                        XAttribute id = metarData.Icao == null
                                            ? new XAttribute("p", metarData.Coordinates.ToString("p"))
                                            : new XAttribute("icao", metarData.Icao);
                        XAttribute count = metarData.Count == 0 ? null : new XAttribute("count", metarData.Count);
                        XAttribute maxAge = metarData.MaxAge == 0 ? null : new XAttribute("maxage", metarData.MaxAge);
                        var element = new XElement("Metar",
                                                   id,
                                                   count,
                                                   maxAge);
                        return element;
                    }
                    break;

                case RequestTypes.AvailableEpochs:
                    return new XElement("AvailableEpochs");

                case RequestTypes.AvailableLevels:
                    return new XElement("AvailableLevels");

                case RequestTypes.AvailableGeoMagModels:
                    return new XElement("AvailableGeomagModels");

                case RequestTypes.Wind:
                    var windData = data as Wind;
                    if (windData != null)
                    {
                        var coords = new XAttribute("p", windData.Coordinates.ToString("p"));
                        var altitude = new XAttribute("z", windData.Altitude);
                        var unit = new XAttribute("u", Altitude.EnumToUnitCode(windData.Unit));
                        var epoch = new XAttribute("e", windData.Epoch.ToNWXString());
                        XAttribute id = windData.Id == null ? null : new XAttribute("id", windData.Id);
                        return new XElement("Wind",
                                            coords,
                                            altitude,
                                            unit,
                                            epoch,
                                            id);
                    }
                    break;

                case RequestTypes.Chart:
                    var chartData = data as Chart;
                    if (chartData != null)
                    {
                        var id = chartData.Id != null ? new XAttribute("id", chartData.Id) : null;
                        var width = new XAttribute("x", chartData.Width);
                        var height = new XAttribute("y", chartData.Height);
                        var level = new XAttribute("z", chartData.Level);
                        var epoch = new XAttribute("e", chartData.Epoch.ToNWXString());
                        var lat0 = new XAttribute("lat0", chartData.LowerLeftCoordinates.Latitude);
                        var lat1 = new XAttribute("lat1", chartData.UpperRightCoordinates.Latitude);
                        var lon0 = new XAttribute("lon0", chartData.LowerLeftCoordinates.Longitude);
                        var lon1 = new XAttribute("lon1", chartData.UpperRightCoordinates.Longitude);
                        var transparentBg = chartData.TransparentBackground
                                                ? new XAttribute("background", "transparent")
                                                : null;
                        var layout = chartData.MapLayout ? new XAttribute("layout", "map") : null;
                        return new XElement("Chart",
                                            id,
                                            width,
                                            height,
                                            level,
                                            epoch,
                                            lat0,
                                            lat1,
                                            lon0,
                                            lon1,
                                            transparentBg,
                                            layout,
                                            from feature in chartData.Features
                                            select new XElement("theme", feature));
                    }
                    break;

                case RequestTypes.TAF:
                    var TAFData = data as TAF;
                    if (TAFData != null)
                    {
                        XAttribute id = TAFData.Icao == null
                                            ? new XAttribute("p", TAFData.Coordinates.ToString("p"))
                                            : new XAttribute("icao", TAFData.Icao);
                        XAttribute count = TAFData.Count == 0 ? null : new XAttribute("count", TAFData.Count);
                        XAttribute maxAge = TAFData.MaxAge == 0 ? null : new XAttribute("maxage", TAFData.MaxAge);
                        var element = new XElement("Taf",
                                                   id,
                                                   count,
                                                   maxAge);
                        return element;
                    }
                    break;
            }
            return null;
        }
		private RequestBodyBuilder PopulateRequestParameters(KnowledgebaseCategoryRequest knowledgebaseCategoryRequest, RequestTypes requestType)
		{
			knowledgebaseCategoryRequest.EnsureValidData(requestType);

			RequestBodyBuilder parameters = new RequestBodyBuilder();
			parameters.AppendRequestDataNonEmptyString("title", knowledgebaseCategoryRequest.Title);

			if (knowledgebaseCategoryRequest.CategoryType.HasValue)
			{
				parameters.AppendRequestData("categorytype",
				                             EnumUtility.ToApiString(knowledgebaseCategoryRequest.CategoryType.Value));
			}

			if (knowledgebaseCategoryRequest.ParentCategoryId.HasValue)
			{
				parameters.AppendRequestData("parentcategoryid", knowledgebaseCategoryRequest.ParentCategoryId.Value);
			}

			if (knowledgebaseCategoryRequest.DisplayOrder.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("displayorder", knowledgebaseCategoryRequest.DisplayOrder.Value);
			}

			if (knowledgebaseCategoryRequest.ArticleSortOrder.HasValue)
			{
				parameters.AppendRequestData("articlesortorder",
				                             EnumUtility.ToApiString(knowledgebaseCategoryRequest.ArticleSortOrder.Value));
			}

			parameters.AppendRequestDataBool("allowcomments", knowledgebaseCategoryRequest.AllowComments);
			parameters.AppendRequestDataBool("allowrating", knowledgebaseCategoryRequest.AllowRating);
			parameters.AppendRequestDataBool("ispublished", knowledgebaseCategoryRequest.IsPublished);
			parameters.AppendRequestDataBool("uservisibilitycustom", knowledgebaseCategoryRequest.UserVisibilityCustom);
			parameters.AppendRequestDataArrayCommaSeparated("usergroupidlist", knowledgebaseCategoryRequest.UserGroupIdList);
			parameters.AppendRequestDataBool("staffvisibilitycustom", knowledgebaseCategoryRequest.StaffVisibilityCustom);
			parameters.AppendRequestDataArrayCommaSeparated("staffgroupidlist", knowledgebaseCategoryRequest.StaffGroupIdList);

			if (requestType == RequestTypes.Create && knowledgebaseCategoryRequest.StaffId.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("staffid", knowledgebaseCategoryRequest.StaffId.Value);
			}

			return parameters;
		}
 public void PrepareRequest(HTTPRequest request, RequestTypes type)
 {
     // Adding the cookie to the request is not required, as it's managed by the plugin automatically,
     // but for now, we want to be really sure that it's added
     request.Cookies.Add(Cookie);
 }
		private RequestBodyBuilder PopulateRequestParameters(KnowledgebaseCommentRequest knowledgebaseCommentRequest, RequestTypes requestType)
		{
			knowledgebaseCommentRequest.EnsureValidData(requestType);

			RequestBodyBuilder parameters = new RequestBodyBuilder();
			parameters.AppendRequestDataNonNegativeInt("knowledgebasearticleid", knowledgebaseCommentRequest.KnowledgebaseArticleId);
			parameters.AppendRequestDataNonEmptyString("contents", knowledgebaseCommentRequest.Contents);
			parameters.AppendRequestData("creatortype", EnumUtility.ToApiString(knowledgebaseCommentRequest.CreatorType));
			
			if (knowledgebaseCommentRequest.CreatorId.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("creatorid", knowledgebaseCommentRequest.CreatorId.Value);
			}
			else
			{
				parameters.AppendRequestDataNonEmptyString("fullname", knowledgebaseCommentRequest.FullName);
			}

			parameters.AppendRequestDataNonEmptyString("email", knowledgebaseCommentRequest.Email);

			if (knowledgebaseCommentRequest.ParentCommentId.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("parentcommentid", knowledgebaseCommentRequest.ParentCommentId.Value);
			}

			return parameters;
		}
		private RequestBodyBuilder PopulateRequestParameters(KnowledgebaseAttachmentRequest knowledgebaseAttachmentRequest, RequestTypes requestType)
		{
			knowledgebaseAttachmentRequest.EnsureValidData(requestType);

			RequestBodyBuilder parameters = new RequestBodyBuilder();
			parameters.AppendRequestDataNonNegativeInt("kbarticleid", knowledgebaseAttachmentRequest.KnowledgebaseArticleId);
			parameters.AppendRequestDataNonEmptyString("filename", knowledgebaseAttachmentRequest.FileName);
			parameters.AppendRequestDataNonEmptyString("contents", knowledgebaseAttachmentRequest.Contents);

			return parameters;
		}
 public void ExecuteSendCommand(object sender, string command, GXPacket packet)
 {
     if (command != "ReadAARQNext" && command != "ReadNextInfo" && command != "ReadNext")
     {
         IsMoreDataAvailable = RequestTypes.None;
     }
     GXDLMSProperty prop = sender as GXDLMSProperty;
     if (command == "InitRead")
     {
         LastNotifiedTransactionProgress = 0;
         InitRead(sender, packet);                
     }
     else if (command == "ReadSNRMSend")
     {
         LastNotifiedTransactionProgress = 0;
         ReadSNRMSend(sender, packet);            
     }
     else if (command == "ReadAARQ")
     {
         LastNotifiedTransactionProgress = 0;
         ReadAARQ(sender, packet);
     }
     else if (command == "ReadAARQNext")
     {
         LastNotifiedTransactionProgress = 0;
         ReadAARQNext(sender, packet);
     }            
     else if (command == "ReadData")
     {
         LastNotifiedTransactionProgress = 0;
         ReadData(prop, packet);
     }
     else if (command == "ReadDataType")
     {
         LastNotifiedTransactionProgress = 0;
         ReadDataType(prop, packet);                
     }
     else if (command == "WriteData")
     {
         LastNotifiedTransactionProgress = 0;
         WriteData(prop, packet);                
     }
     else if (command == "KeepAliveRequest")
     {
         LastNotifiedTransactionProgress = 0;
         //Network connection don't need this.
         if (!SupportNetworkSpecificSettings)
         {
             packet.AppendData(parser.GetKeepAlive());
         }
     }
     else if (command == "DisconnectRequest")
     {
         LastNotifiedTransactionProgress = 0;
         //Network connection don't need this.
         if (!SupportNetworkSpecificSettings)
         {
             packet.AppendData(parser.DisconnectRequest());
         }
     }
     else if (command == "ReadTableInfo")
     {
         if (this.Extension != null)
         {
             ReceivedData = null;
             ExtraInfoPos = 0;
             ExtraInfo.Clear();
             List<GXObisCode> items = new List<GXObisCode>();
             this.Extension.ReadExtraInfo(items);
             if (items.Count != 0)
             {
                 foreach (GXObisCode it in items)
                 {
                     ExtraInfo.Add(it, null);
                 }
                 GXObisCode item = items[0];
                 packet.AppendData(parser.Read(item.LogicalName, item.ObjectType, item.AttributeIndex)[0]);
             }
         }
     }
     else if (command == "ReadCapturePeriod")
     {
         ReceivedData = null;                
         GXDLMSTable table = sender as GXDLMSTable;
         //Capture period is read only once.
         if (table.CapturePeriod == 0)
         {
             if (parser.UseLogicalNameReferencing)
             {
                 packet.AppendData(parser.Read(table.LogicalName, Gurux.DLMS.ObjectType.ProfileGeneric, 4)[0]);
             }
             else
             {
                 packet.AppendData(parser.Read(table.ShortName, Gurux.DLMS.ObjectType.ProfileGeneric, 4)[0]);
             }
         }
     }                
     else if (command == "ReadTableContent")
     {
         //Check start and end times.
         DateTime starttm, endtm;
         GXDLMSTable table = sender as GXDLMSTable;
         (table as IGXPartialRead).GetStartEndTime(out starttm, out endtm);
         LastNotifiedTransactionProgress = 0;                
         ReceivedData = null;
         TryParse = false;
         if (parser.UseLogicalNameReferencing)
         {
             packet.AppendData(parser.Read(table.LogicalName, Gurux.DLMS.ObjectType.ProfileGeneric, 3)[0]);
         }
         else
         {
             packet.AppendData(parser.Read(table.ShortName, Gurux.DLMS.ObjectType.ProfileGeneric, 3)[0]);
         }
     }
     else if (command == "ReadNextInfo") //Read next part of the data or next item.
     {
         //Read next extra info.
         if (IsMoreDataAvailable == Gurux.DLMS.RequestTypes.None)
         {                                        
             GXObisCode item = ExtraInfo.Keys.ElementAt(ExtraInfoPos);
             object data = parser.Read(item.LogicalName, item.ObjectType, item.AttributeIndex)[0];
             packet.AppendData(data);
         }
         else //Read next part of the data.
         {
             Gurux.DLMS.RequestTypes readItem = Gurux.DLMS.RequestTypes.Frame;
             if ((IsMoreDataAvailable & RequestTypes.Frame) == 0)
             {
                 readItem = Gurux.DLMS.RequestTypes.DataBlock;
             }
             packet.AppendData(parser.ReceiverReady(readItem));
         }
     }
     else if (command == "ReadNext") //Read next part of data.
     {
         Gurux.DLMS.RequestTypes readItem = Gurux.DLMS.RequestTypes.Frame;
         if ((IsMoreDataAvailable & RequestTypes.Frame) == 0)
         {
             readItem = Gurux.DLMS.RequestTypes.DataBlock;
         }
         packet.AppendData(parser.ReceiverReady(readItem));
     }
     else if (command == "ReadTableData") //Read next part of data.
     {
         pg = Gurux.DLMS.GXDLMSClient.CreateObject(ObjectType.ProfileGeneric) as Gurux.DLMS.Objects.GXDLMSProfileGeneric;
         GXDLMSTable table2 = sender as GXDLMSTable;
         pg.CapturePeriod = table2.CapturePeriod;
         foreach (GXDLMSProperty col in table2.Columns)
         {
             GXDLMSObject item = Gurux.DLMS.GXDLMSClient.CreateObject(col.ObjectType);
             item.SetDataType(col.AttributeOrdinal, col.DLMSType);
             item.SetUIDataType(col.AttributeOrdinal, col.ValueType);
             item.LogicalName = col.LogicalName;
             //Update scaler for register.
             if (col is GXDLMSRegister && col.AttributeOrdinal == 2)
             {
                 GXDLMSRegister r = col as GXDLMSRegister;
                 if (item.ObjectType == ObjectType.DemandRegister)
                 {
                     (item as Gurux.DLMS.Objects.GXDLMSDemandRegister).Scaler = r.Scaler;
                 }
                 else
                 {
                     (item as Gurux.DLMS.Objects.GXDLMSRegister).Scaler = r.Scaler;
                 }
             }
             pg.CaptureObjects.Add(new GXKeyValuePair<GXDLMSObject, GXDLMSCaptureObject>(item, new GXDLMSCaptureObject(col.AttributeOrdinal, 0)));
         }
         LastNotifiedTransactionProgress = 0;
         GXDLMSTable table = sender as GXDLMSTable;                
         ReceivedRows = 0;
         TryParse = true;
         ReceivedData = null;                
         IGXPartialRead partialRead = table as IGXPartialRead;
         object name, data;
         int EDISType = 0, Version = 0;
         if (parser.UseLogicalNameReferencing)
         {
             name = table.LogicalName;
         }
         else
         {
             name = table.ShortName;
         }
         string ClockLN = "0.0.1.0.0.255";
         if (partialRead.Type == PartialReadType.All)
         {
             data = parser.Read(name, ObjectType.ProfileGeneric, 2)[0];
         }
         else if (partialRead.Type == PartialReadType.Entry)
         {
             data = parser.ReadRowsByEntry(name, Convert.ToInt32((table as IGXPartialRead).Start), Convert.ToInt32((table as IGXPartialRead).End));
         }                
         else
         {                    
             DateTime starttm = DateTime.MinValue, endtm = DateTime.MaxValue;                                        
             if (table.Columns.Count != 0)
             {
                 GXDLMSProperty col = table.Columns[0] as GXDLMSProperty;
                 EDISType = col.AttributeOrdinal;
                 Version = col.Version;
             }
             (table as IGXPartialRead).GetStartEndTime(out starttm, out endtm);
             System.Diagnostics.Debug.WriteLine("Reading table between: " + starttm.ToString() + "" + endtm.ToString());
             data = parser.ReadRowsByRange(name, ClockLN, Gurux.DLMS.ObjectType.Clock, Version, starttm, endtm);                    
         }
         packet.AppendData(data);
     }
     else
     {
         throw new NotImplementedException();
     }
 }      
Example #44
0
 /// <summary>
 /// 如果没有找到对应的消息类型,返回 null
 /// </summary>
 /// <param name="msgType"></param>
 /// <param name="eventType"></param>
 /// <returns></returns>
 public static Type GetMessageType(RequestTypes msgType, EventTypes? eventType)
 {
     return Types.Get(string.Format("{0},{1}", msgType, eventType), null);
 }
Example #45
0
        /// <summary>
        /// It's called on every request before sending it out to the server.
        /// </summary>
        HTTPRequest IConnection.PrepareRequest(HTTPRequest req, RequestTypes type)
        {
            if (req != null && AuthenticationProvider != null)
                AuthenticationProvider.PrepareRequest(req, type);

            if (RequestPreparator != null)
                RequestPreparator(this, req, type);

            return req;
        }
 public bool IsTransactionComplete(object sender, string command, GXPacket packet)
 {
     if (command == "IsAARQSend")
     {                
         bool complete = AARQRequest.Length == AARQRequestPos;
         return complete;
     }
     else if (command == "IsAllDataReceived")//Is all data read.
     {
         byte[] data = packet.ExtractPacket();
         CheckErrors(data, false);
         RequestTypes tmp = parser.GetDataFromPacket(data, ref ReceivedData);
         if (tmp == RequestTypes.None && IsMoreDataAvailable != RequestTypes.None)
         {
             if ((IsMoreDataAvailable & RequestTypes.Frame) != 0)
             {
                 IsMoreDataAvailable &= ~RequestTypes.Frame;
             }
             else
             {
                 IsMoreDataAvailable &= ~RequestTypes.DataBlock;
             }
         }
         else
         {
             IsMoreDataAvailable |= tmp;
         }
         return IsMoreDataAvailable == Gurux.DLMS.RequestTypes.None;
     }
     else if (command == "IsAllTableInfoReceived")//Is all data read.
     {
         byte[] data = packet.ExtractPacket();
         CheckErrors(data, true);
         RequestTypes tmp = parser.GetDataFromPacket(data, ref ReceivedData);
         if (tmp == RequestTypes.None && IsMoreDataAvailable != RequestTypes.None)
         {
             if ((IsMoreDataAvailable & RequestTypes.Frame) != 0)
             {
                 IsMoreDataAvailable &= ~RequestTypes.Frame;
             }
             else
             {
                 IsMoreDataAvailable &= ~RequestTypes.DataBlock;
             }
         }
         else
         {
             IsMoreDataAvailable |= tmp;
         }
         if (IsMoreDataAvailable != Gurux.DLMS.RequestTypes.None)
         {                    
             return true;
         }
         ExtraInfo[ExtraInfo.Keys.ElementAt(ExtraInfoPos)] = parser.GetValue(ReceivedData);
         ReceivedData = null;
         //Read next item.
         if (++ExtraInfoPos < ExtraInfo.Count)
         {
             return false;                    
         }                
         return true;                
     }                
     else if (command == "IsAllTableDataReceived")//Are all columns read.
     {                
         Gurux.Device.GXTable table = sender as Gurux.Device.GXTable;
         Gurux.Device.GXDevice device = table.Device;
         int progress = 0;                
         byte[] data = packet.ExtractPacket();
         CheckErrors(data, true);
         //Clear packet so we are not saved it for later use.
         packet.Clear();
         RequestTypes tmp = parser.GetDataFromPacket(data, ref ReceivedData);
         if (tmp == RequestTypes.None && IsMoreDataAvailable != RequestTypes.None)
         {
             if ((IsMoreDataAvailable & RequestTypes.Frame) != 0)
             {
                 IsMoreDataAvailable &= ~RequestTypes.Frame;
             }
             else
             {
                 IsMoreDataAvailable &= ~RequestTypes.DataBlock;
             }
         }
         else
         {
             IsMoreDataAvailable |= tmp;
         }
         bool complete = IsMoreDataAvailable == Gurux.DLMS.RequestTypes.None;
         //Notify only percent to increase traffic.
         int maxValue = parser.GetMaxProgressStatus(ReceivedData);
         //Notify progess.
         if (maxValue == 0)
         {
             progress = 0;
         }
         else
         {
             double val = parser.GetCurrentProgressStatus(ReceivedData);                    
             progress = (int)(val / maxValue * 100);
         }
         if (LastNotifiedTransactionProgress != progress)
         {
             if (complete)
             {
                 device.NotifyTransactionProgress(this, new Gurux.Device.GXTransactionProgressEventArgs(sender, 100, 100, Gurux.Device.DeviceStates.ReadEnd));
             }
             else
             {
                 device.NotifyTransactionProgress(this, new Gurux.Device.GXTransactionProgressEventArgs(sender, progress, 100, Gurux.Device.DeviceStates.ReadStart));                        
             }
             LastNotifiedTransactionProgress = progress;
         }
         //Try Parse DLMS objexts.
         if (TryParse)
         {
             GXDLMSTable table2 = sender as GXDLMSTable;
             if (this.ReceivedRows == 0)
             {
                 table2.ClearRows();                        
             }                    
             Array reply = (Array)parser.TryGetValue(ReceivedData);
             // If there is data.
             if (reply != null && reply.Length != 0)
             {
                 int count = pg.Buffer.Count;
                 pg.SetValue(2, reply);                        
                 List<object> receivedData = new List<object>(pg.Buffer.ToArray());
                 //Remove old rows. We must keep latest because some meters returns null as date time.
                 if (count != 0)
                 {                            
                     receivedData.RemoveRange(0, count);
                     pg.Buffer.RemoveRange(0, count - 1);
                 }
                 List<object[]> rows = new List<object[]>(receivedData.Count);
                 bool updated = false;
                 if (Extension != null)
                 {
                     updated = Extension.UpdateTableData(TableColumns, table2, reply, rows);
                 }
                 if (!updated)
                 {
                     foreach (object row in receivedData)
                     {
                         List<object> cols = new List<object>();
                         foreach (int it in ColumnIndexs)
                         {
                             cols.Add(((object[])row)[it]);
                         }
                         rows.Add(cols.ToArray());
                     }
                 }
                 table2.AddRows(-1, rows, false);
                 //Save latest read time. Note we must add Capture Period or we will read last values again.
                 Gurux.Device.Editor.IGXPartialRead partialRead = table as Gurux.Device.Editor.IGXPartialRead;
                 if (partialRead.Type == Gurux.Device.Editor.PartialReadType.New && rows[rows.Count - 1][0] is GXDateTime)
                 {                            
                     DateTime tm = (rows[rows.Count - 1][0] as GXDateTime).Value;
                     partialRead.Start = tm.AddSeconds(pg.CapturePeriod);
                 }
                 ReceivedRows += reply.Length;
             }                  
         }
         return complete;
     }
     else
     {
         throw new NotImplementedException();
     }
 }
Example #47
0
 /// <summary>
 /// Generates an acknowledgment message, with which the server is informed to 
 /// send next packets.
 /// </summary>
 /// <param name="type">Frame type</param>
 /// <returns>Acknowledgment message as byte array.</returns>
 public byte[] ReceiverReady(RequestTypes type)
 {
     if (!UseLogicalNameReferencing || type == RequestTypes.Frame)
     {
         byte id = GenerateSupervisoryFrame((byte)0);
         byte id2 = GenerateACK();
         if (id != id2)
         {
             //System.Diagnostics.Debug.WriteLine("TODO: " + id.ToString() + " " + id2.ToString());
         }
         return AddFrame(id, false, null, 0, 0);
     }
     List<byte> buff = new List<byte>(10);
     if (this.InterfaceType == InterfaceType.General)
     {
         if (Server)
         {                    
             buff.AddRange(GXCommon.LLCReplyBytes);
         }
         else
         {
             buff.AddRange(GXCommon.LLCSendBytes);
         }                
     }
     //Get request normal
     buff.Add(0xC0);
     buff.Add(0x02);
     //Invoke ID and priority.
     buff.Add(GetInvokeIDPriority());
     GXCommon.SetUInt32(PacketIndex, buff);
     return AddFrame(GenerateIFrame(), false, buff, 0, buff.Count);
 }           
 private ReportRequest ReportParse(RequestTypes.RequestTypeEnum requestType, string requestAction, XmlDocument doc)
 {
     ReportRequest reportRequest = new ReportRequest
     {
         RequestType = requestType,
         RequestAction = requestAction,
         XMLReturnCode = 0,
         XMLReturnMessage = @"OK"
     };
     try
     {
         Guid requestGuid = Guid.Empty;
         Guid.TryParse(ProcessNode(doc, "RequestID"), out requestGuid);
         reportRequest.RequestID = requestGuid;
         reportRequest.BusinessUnitID = ProcessNode(doc, "BusinessUnitID");
         reportRequest.ReportParameters = ProcessNode(doc, "ReportParameters");
     }
     catch (Exception ex)
     {
         Utilities.WriteLog(String.Format(ex.Message + " " + ex.StackTrace));
         reportRequest.ReturnType = ReturnTypes.ReturnTypeEnum.XmlError;
         reportRequest.XMLReturnCode = -2;
         reportRequest.XMLReturnMessage = ex.Message;
     }
     return reportRequest;
 }
Example #49
0
 /// <summary>
 /// Generates an acknowledgment message, with which the server is informed to 
 /// send next packets.
 /// </summary>
 /// <param name="type">Frame type</param>
 /// <returns>Acknowledgment message as byte array.</returns>
 public byte[] ReceiverReady(RequestTypes type)
 {
     return m_Base.ReceiverReady(type);
 }
		private RequestBodyBuilder PopulateRequestParameters(KnowledgebaseArticleRequest knowledgebaseArticleRequest, RequestTypes requestType)
		{
			knowledgebaseArticleRequest.EnsureValidData(requestType);

			RequestBodyBuilder parameters = new RequestBodyBuilder();
			parameters.AppendRequestDataNonEmptyString("subject", knowledgebaseArticleRequest.Subject);
			parameters.AppendRequestDataNonEmptyString("contents", knowledgebaseArticleRequest.Contents);

			if (requestType == RequestTypes.Create && knowledgebaseArticleRequest.CreatorId.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("creatorid", knowledgebaseArticleRequest.CreatorId.Value);
			}

			if (knowledgebaseArticleRequest.ArticleStatus.HasValue)
			{
				parameters.AppendRequestData("articlestatus", EnumUtility.ToApiString(knowledgebaseArticleRequest.ArticleStatus.Value));
			}

			parameters.AppendRequestDataBool("isfeatured", knowledgebaseArticleRequest.IsFeatured);
			parameters.AppendRequestDataBool("allowcomments", knowledgebaseArticleRequest.AllowComments);
			parameters.AppendRequestDataArrayCommaSeparated("categoryid", knowledgebaseArticleRequest.CategoryIds);

			if (requestType == RequestTypes.Update && knowledgebaseArticleRequest.EditedStaffId.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("editedstaffid", knowledgebaseArticleRequest.EditedStaffId.Value);
			}

			return parameters;
		}
        /// <summary>
        /// This method is used to test Request Type Enumeration related adapter requirements.
        /// </summary>
        /// <param name="instance">Specify the instance which need to be verified.</param>
        /// <param name="site">Specify the ITestSite instance.</param>
        private void VerifyRequestTypes(RequestTypes instance, ITestSite site)
        {
            // Directly capture requirement MS-FSSHTTPB_R176, if there are no parsing errors. 
            site.CaptureRequirement(
                     "MS-FSSHTTPB",
                     176,
                     @"[In Request Type Enumeration][Request Type Enumeration] Specifies the sub-request type (section 2.2.2.1) to indicate the operation being requested, or the sub-response type (section 2.2.3.1) to indicate the response per the request.");

            // Directly capture requirement MS-FSSHTTPB_R177, if there are no parsing errors. 
            site.CaptureRequirement(
                     "MS-FSSHTTPB",
                     177,
                     @"[In Request Type Enumeration] The following table enumerates the values for each operation:[Its value must be one of 1,2,5,11].");

            switch ((int)instance)
            {
                case 1:

                    // Directly capture requirement MS-FSSHTTPB_R178, if there are no parsing errors. 
                    site.CaptureRequirement(
                             "MS-FSSHTTPB",
                             178,
                             @"[In Request Type Enumeration][Request Type Enumeration is set to ]1 [specifies a request or response for the ]Query access[operation].");

                    // Directly capture requirement MS-FSSHTTPB_R863, if there are no parsing errors. 
                    site.CaptureRequirement(
                             "MS-FSSHTTPB",
                             863,
                             @"[In Query Access Sub-Request Processing] The server MUST reply back to the client with a Query Access sub-response, as specified in section 2.2.3.1.1.");

                    break;

                case 2:

                    // Directly capture requirement MS-FSSHTTPB_R179, if there are no parsing errors. 
                    site.CaptureRequirement(
                             "MS-FSSHTTPB",
                             179,
                             @"[In Request Type Enumeration][Request Type Enumeration is set to ]2 [specifies a request or response for the ]Query changes[operation].");

                    // Directly capture requirement MS-FSSHTTPB_R865, if there are no parsing errors. 
                    site.CaptureRequirement(
                             "MS-FSSHTTPB",
                             865,
                             @"[In Query Changes Sub-Request Processing] The server MUST reply back to the client with a Query Changes sub-response, as specified in section 2.2.3.1.2. [<5>]");

                    break;

                case 5:

                    // Directly capture requirement MS-FSSHTTPB_R182, if there are no parsing errors. 
                    site.CaptureRequirement(
                             "MS-FSSHTTPB",
                             182,
                             @"[In Request Type Enumeration][Request Type Enumeration is set to ]5 [specifies a request or response for the]Put changes[operation].");

                    // Directly capture requirement MS-FSSHTTPB_R872, if there are no parsing errors. 
                    site.CaptureRequirement(
                             "MS-FSSHTTPB",
                             872,
                             @"[In Put Changes Sub-Request Processing] The server MUST reply back to the client with a Put Changes sub-response, as specified in section 2.2.3.1.3.");

                    break;

                case 11:

                    // Directly capture requirement MS-FSSHTTPB_R2097, if there are no parsing errors. 
                    site.CaptureRequirement(
                             "MS-FSSHTTPB",
                             2097,
                             @"[In Request Type Enumeration][Request Type Enumeration is set to ]11 [specifies a request or response for the] Allocate ExtendedGuid range[operation].");

                    break;

                default:
                    site.Assert.Fail("Unsupported request types " + (int)instance);
                    break;
            }
        }
Example #52
0
 /// <summary>
 /// Generates an acknowledgment message, with which the server is informed to 
 /// send next packets.
 /// </summary>
 /// <param name="type">Frame type</param>
 /// <returns>Acknowledgment message as byte array.</returns>
 public byte[] ReceiverReady(RequestTypes type)
 {
     if (!UseLogicalNameReferencing || type == RequestTypes.Frame)
     {
         return AddFrame(GenerateSupervisoryFrame((byte)0), false, null, 0, 0);
     }
     List<byte> buff = new List<byte>(10);
     if (this.InterfaceType == InterfaceType.General)
     {
         if (Server)
         {                    
             buff.AddRange(GXCommon.LLCReplyBytes);
         }
         else
         {
             buff.AddRange(GXCommon.LLCSendBytes);
         }                
     }
     //Get request normal
     buff.Add(0xC0);
     buff.Add(0x02);
     //Invoke ID and priority.
     buff.Add(GetInvokeIDPriority());
     GXCommon.SetUInt32(PacketIndex, buff);
     return AddFrame(GenerateIFrame(), false, buff, 0, buff.Count);
 }           
		private RequestBodyBuilder PopulateRequestParameters(TroubleshooterCategoryRequest troubleshooterCategoryRequest, RequestTypes requestType)
		{
			troubleshooterCategoryRequest.EnsureValidData(requestType);

			RequestBodyBuilder parameters = new RequestBodyBuilder();
			parameters.AppendRequestDataNonEmptyString("title", troubleshooterCategoryRequest.Title);
			parameters.AppendRequestData("categorytype", EnumUtility.ToApiString(troubleshooterCategoryRequest.CategoryType));

			if (requestType == RequestTypes.Create)
			{
				parameters.AppendRequestDataNonNegativeInt("staffid", troubleshooterCategoryRequest.StaffId);
			}

			if (troubleshooterCategoryRequest.DisplayOrder.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("displayorder", troubleshooterCategoryRequest.DisplayOrder.Value);
			}

			parameters.AppendRequestDataNonEmptyString("description", troubleshooterCategoryRequest.Description);
			parameters.AppendRequestDataBool("uservisibilitycustom", troubleshooterCategoryRequest.UserVisibilityCustom);
			parameters.AppendRequestDataArrayCommaSeparated("usergroupidlist", troubleshooterCategoryRequest.UserGroupIdList);
			parameters.AppendRequestDataBool("staffvisibilitycustom", troubleshooterCategoryRequest.StaffVisibilityCustom);
			parameters.AppendRequestDataArrayCommaSeparated("staffgroupidlist", troubleshooterCategoryRequest.StaffGroupIdList);

			return parameters;
		}
		private static RequestBodyBuilder PopulateRequestParameters(UserRequest user, RequestTypes requestType)
        {
			user.EnsureValidData(requestType);

            RequestBodyBuilder parameters = new RequestBodyBuilder();

            if (!String.IsNullOrEmpty(user.FullName))
            {
                parameters.AppendRequestData("fullname", user.FullName);
            }

            if (user.GroupId > 0)
            {
                parameters.AppendRequestData("usergroupid", user.GroupId);
            }

            if (user.EmailAddresses != null && user.EmailAddresses.Length > 0)
            {
                parameters.AppendRequestDataArray("email[]", user.EmailAddresses);
            }

			if (user.OrganizationId != null && user.OrganizationId.HasValue && user.OrganizationId.Value > 0)
            {
                parameters.AppendRequestData("userorganizationid", user.OrganizationId.Value);
            }

            parameters.AppendRequestData("salutation", EnumUtility.ToApiString(user.Salutation));

            if(!String.IsNullOrEmpty(user.Designation))
            {
                parameters.AppendRequestData("designation", user.Designation);
            }

            if(!String.IsNullOrEmpty(user.Phone))
            {
                parameters.AppendRequestData("phone", user.Phone);
            }

            parameters.AppendRequestData("isenabled", Convert.ToInt32(user.IsEnabled));

			parameters.AppendRequestData("userrole", EnumUtility.ToApiString(user.Role));

            if(!String.IsNullOrEmpty(user.TimeZone))
            {
                parameters.AppendRequestData("timezone", user.TimeZone);
            }
            
            parameters.AppendRequestData("enabledst", Convert.ToInt32(user.EnableDst));

			if (user.SlaPlanId != null)
			{
				parameters.AppendRequestData("slaplanid", user.SlaPlanId);
			}

			if (user.SlaPlanExpiry != null)
			{
				parameters.AppendRequestData("slaplanexpiry", user.SlaPlanExpiry);
			}

			if (user.Expiry != null)
			{
				parameters.AppendRequestData("userexpiry", user.Expiry);
			}

            return parameters;
		}
		private RequestBodyBuilder PopulateRequestParameters(TroubleshooterCommentRequest troubleshooterCommentRequest, RequestTypes requestType)
		{
			troubleshooterCommentRequest.EnsureValidData(requestType);

			RequestBodyBuilder parameters = new RequestBodyBuilder();
			parameters.AppendRequestDataNonNegativeInt("troubleshooterstepid", troubleshooterCommentRequest.TroubleshooterStepId);
			parameters.AppendRequestDataNonEmptyString("contents", troubleshooterCommentRequest.Contents);
			parameters.AppendRequestData("creatortype", EnumUtility.ToApiString(troubleshooterCommentRequest.CreatorType));
			parameters.AppendRequestDataNonNegativeInt("creatorid", troubleshooterCommentRequest.CreatorId);
			parameters.AppendRequestDataNonEmptyString("fullname", troubleshooterCommentRequest.FullName);
			parameters.AppendRequestDataNonEmptyString("email", troubleshooterCommentRequest.Email);
			parameters.AppendRequestDataNonNegativeInt("parentcommentid", troubleshooterCommentRequest.ParentCommentId);

			return parameters;
		}
		private static RequestBodyBuilder PopulateRequestParameters(UserGroupRequest userGroup, RequestTypes requestType)
		{
            userGroup.EnsureValidData(requestType);

			RequestBodyBuilder parameters = new RequestBodyBuilder();

			if (!String.IsNullOrEmpty(userGroup.Title))
			{
				parameters.AppendRequestData("title", userGroup.Title);
			}

			parameters.AppendRequestData("grouptype", EnumUtility.ToApiString(userGroup.GroupType));

			//parameters.AppendRequestData("ismaster", Convert.ToInt32(userGroup.Ismaster));

			return parameters;
		}
Example #57
0
 private bool GetLNData(List<byte> buff, ref int index, ref int pError, ref RequestTypes MoreData, byte res)
 {
     ++index;
     if (buff.Count - 1 < index)
     {
         return false;
     }
     //If meter returns exception.
     if (res == 0xD8)
     {
         StateError StateError = (StateError) buff[index++];
         ServiceError ServiceError = (ServiceError) buff[index++];
         throw new GXDLMSException(StateError.ToString() + " " + ServiceError.ToString());
     }
     bool server = res == 0xC0;
     server = this.Server;
     if (res != 0x60 && res != 0x63 && res != (int)Command.GetResponse && res != (int)Command.SetResponse &&
         res != (int)Command.SetRequest && res != (int)Command.GetRequest && res != (int)Command.MethodRequest &&
         res != (int)Command.MethodResponse)
     {
         throw new GXDLMSException("Invalid response");
     }
     byte AttributeID = buff[index++];
     if (buff.Count - 1 < index)
     {
         return false;
     }
     //Skip Invoke ID and priority.
     byte InvokeID = buff[index++];
     if (buff.Count - 1 < index)
     {
         return false;
     }
     if (server && AttributeID == 0x2)
     {
         MoreData |= RequestTypes.DataBlock;
     }
     else if (res == (int)Command.SetRequest)
     {
         
     }
     else if (res == (int)Command.SetResponse || res == (int)Command.MethodResponse)
     {
         if (buff[index++] != 0)
         {
             pError = buff[index++];
         }
     }
     else
     {
         if (server && AttributeID == 0x01)
         {                    
         }
         else
         {
             byte Priority = buff[index++];
             if (buff.Count - 1 < index)
             {
                 return false;
             }
             if (AttributeID == 0x01 && Priority != 0)
             {
                 if (buff.Count - 1 < index)
                 {
                     return false;
                 }
                 pError = buff[index++];                        
             }
             else
             {
                 if (AttributeID == 0x02)
                 {
                     if (Priority == 0)
                     {
                         MoreData |= RequestTypes.DataBlock;
                     }
                     PacketIndex = GXCommon.GetUInt32(buff, ref index);
                     index += 1;
                     //Get data length.
                     int dataLength = GXCommon.GetObjectCount(buff, ref index);
                 }
             }
         }
     }
     return true;
 }
 /// <summary>
 /// Prepares the request by adding two headers to it
 /// </summary>
 public void PrepareRequest(BestHTTP.HTTPRequest request, RequestTypes type)
 {
     request.SetHeader("username", this.User);
     request.SetHeader("roles", this.Roles);
 }
Example #59
0
        /// <summary>
        /// Creates an Uri instance from the given parameters.
        /// </summary>
        Uri IConnection.BuildUri(RequestTypes type, TransportBase transport)
        {
            lock (SyncRoot)
            {
                // make sure that the queryBuilder is reseted
                queryBuilder.Length = 0;

                UriBuilder uriBuilder = new UriBuilder(Uri);

                if (!uriBuilder.Path.EndsWith("/"))
                    uriBuilder.Path += "/";

                this.RequestCounter %= UInt64.MaxValue;

                switch (type)
                {
                    case RequestTypes.Negotiate:
                        uriBuilder.Path += "negotiate";
                        goto default;

                    case RequestTypes.Connect:
#if !BESTHTTP_DISABLE_WEBSOCKET
                        if (transport != null && transport.Type == TransportTypes.WebSocket)
                            uriBuilder.Scheme = HTTPProtocolFactory.IsSecureProtocol(Uri) ? "wss" : "ws";
#endif

                        uriBuilder.Path += "connect";
                        goto default;

                    case RequestTypes.Start:
                        uriBuilder.Path += "start";
                        goto default;

                    case RequestTypes.Poll:
                        uriBuilder.Path += "poll";
                        if (this.LastReceivedMessage != null)
                        {
                            queryBuilder.Append("messageId=");
                            queryBuilder.Append(this.LastReceivedMessage.MessageId);
                        }
                        goto default;

                    case RequestTypes.Send:
                        uriBuilder.Path += "send";
                        goto default;

                    case RequestTypes.Reconnect:
#if !BESTHTTP_DISABLE_WEBSOCKET
                        if (transport != null && transport.Type == TransportTypes.WebSocket)
                            uriBuilder.Scheme = HTTPProtocolFactory.IsSecureProtocol(Uri) ? "wss" : "ws";
#endif

                        uriBuilder.Path += "reconnect";

                        if (this.LastReceivedMessage != null)
                        {
                            queryBuilder.Append("messageId=");
                            queryBuilder.Append(this.LastReceivedMessage.MessageId);
                        }

                        if (!string.IsNullOrEmpty(GroupsToken))
                        {
                            if (queryBuilder.Length > 0)
                                queryBuilder.Append("&");

                            queryBuilder.Append("groupsToken=");
                            queryBuilder.Append(GroupsToken);
                        }

                        goto default;

                    case RequestTypes.Abort:
                        uriBuilder.Path += "abort";
                        goto default;

                    case RequestTypes.Ping:
                        uriBuilder.Path += "ping";

                        queryBuilder.Append("&tid=");
                        queryBuilder.Append(this.RequestCounter++.ToString());

                        queryBuilder.Append("&_=");
                        queryBuilder.Append(Timestamp.ToString());

                        break;

                    default:
                        if (queryBuilder.Length > 0)
                            queryBuilder.Append("&");

                        queryBuilder.Append("tid=");
                        queryBuilder.Append(this.RequestCounter++.ToString());

                        queryBuilder.Append("&_=");
                        queryBuilder.Append(Timestamp.ToString());

                        if (transport != null)
                        {
                            queryBuilder.Append("&transport=");
                            queryBuilder.Append(transport.Name);
                        }

                        queryBuilder.Append("&clientProtocol=");
                        queryBuilder.Append(ClientProtocol);

                        if (NegotiationResult != null && !string.IsNullOrEmpty(this.NegotiationResult.ConnectionToken))
                        {
                            queryBuilder.Append("&connectionToken=");
                            queryBuilder.Append(this.NegotiationResult.ConnectionToken);
                        }

                        if (this.Hubs != null && this.Hubs.Length > 0)
                        {
                            queryBuilder.Append("&connectionData=");
                            queryBuilder.Append(this.ConnectionData);
                        }

                        break;
                }

                // Query params are added to all uri
                if (this.AdditionalQueryParams != null && this.AdditionalQueryParams.Count > 0)
                    queryBuilder.Append(this.QueryParams);

                uriBuilder.Query = queryBuilder.ToString();

                // reset the string builder
                queryBuilder.Length = 0;

                return uriBuilder.Uri;
            }
        }
Example #60
0
 public RequestTypeAttribute(RequestTypes msgType, EventTypes eventType)
 {
     this.MessageType = msgType;
     this.EventType = eventType;
 }