예제 #1
0
        public ActionResult <string> Post(IFormCollection collection)
        {
            var lines = collection.Select(kvp => kvp.Key + ": " + kvp.Value.ToString());

            Log.Information("POST: " + string.Join(Environment.NewLine, lines));
            return(HandlePost(collection));
        }
예제 #2
0
        public async static Task <HttpRequestData> ToHttpRequestData(
            this IOwinContext context,
            Func <byte[], byte[]> cookieDecryptor)
        {
            if (context == null)
            {
                return(null);
            }

            IFormCollection formData = null;

            if (context.Request.Body != null)
            {
                formData = await context.Request.ReadFormAsync();
            }

            var applicationRootPath = context.Request.PathBase.Value;

            if (string.IsNullOrEmpty(applicationRootPath))
            {
                applicationRootPath = "/";
            }

            return(new HttpRequestData(
                       context.Request.Method,
                       context.Request.Uri,
                       applicationRootPath,
                       formData?.Select(f => new KeyValuePair <string, IEnumerable <string> >(f.Key, f.Value)),
                       context.Request.Cookies,
                       cookieDecryptor,
                       context.Request.User as ClaimsPrincipal));
        }
        public ActionResult Login(IFormCollection data)
        {
            var username = data.Select(x => x.Value).Where(y => y == "username").FirstOrDefault();
            var password = data.Select(x => x.Value).Where(y => y == "password").FirstOrDefault();

            bool doesUserExists = allUsers.Any(x => x.username == username && x.password == password);

            if (doesUserExists)
            {
                var user = allUsers.Find(x => x.username == username && x.password == password);
                return(View("Index", user));
            }
            else
            {
                return(View("~/Views/Shared/Error.cshtml"));
            }
        }
예제 #4
0
        /// <summary>
        /// returns strongly-typed T from a form collection
        /// </summary>
        public static T ParseForm <T>(this IFormCollection form) where T : new()
        {
            var fields = form
                         .Select(keyPair => new KeyValuePair <string, string>(keyPair.Key, keyPair.Value.First()))
                         .ToDictionary(keyPair => keyPair.Key, keyPair => keyPair.Value);

            string json = JsonConvert.SerializeObject(fields);

            return(JsonConvert.DeserializeObject <T>(json));
        }
예제 #5
0
        //FORMS

        public async Task <string> GetFormsForDataTable(IFormCollection formCollection)
        {
            var uri = API.Form.GetFormsForDataTable(_remoteServiceBaseUrl);

            var nameValueCollection = formCollection.Select(dt => new KeyValuePair <string, string>(dt.Key, dt.Value.ToString()));

            var content = new FormUrlEncodedContent(nameValueCollection);

            var response = await _httpClient.PostAsync(uri, content);

            var forms = await response.Content.ReadAsStringAsync();

            return(forms);
        }
예제 #6
0
        public async Task <string> GetListsForDataTable(IFormCollection formCollection, int?parentId = null)
        {
            var uri = API.List.GetListsForDataTable(_remoteServiceBaseUrl, parentId);

            var keyValues = formCollection.Select(dt => new KeyValuePair <string, string>(dt.Key, dt.Value.ToString()));

            var content = new FormUrlEncodedContent(keyValues);

            var responseString = await _httpClient.PostAsync(uri, content);

            var contacts = await responseString.Content.ReadAsStringAsync();

            return(contacts);
        }
예제 #7
0
        public async Task <string> GetRolesForDatatableAsync(IFormCollection datatableParams)
        {
            var uri = API.Role.GetRolesForDatatable(_remoteServiceBaseUrl);

            var keyValues = datatableParams.Select(dt => new KeyValuePair <string, string>(dt.Key, dt.Value.ToString()));

            var content = new StringContent(JsonConvert.SerializeObject(keyValues), System.Text.Encoding.UTF8, "application/json");

            var responseString = await _httpClient.PostAsync(uri, content);

            var roles = await responseString.Content.ReadAsStringAsync();

            return(roles);
        }
예제 #8
0
        public ActionResult <bool> Post(IFormCollection collection)
        {
            var lines = collection.Select(kvp => kvp.Key + ": " + kvp.Value.ToString());

            Log.Information("POST2: " + string.Join(Environment.NewLine, lines));
            try
            {
                Data.InsertPriceAlart(collection["trading_pair"], decimal.Parse(collection["price"]), collection["times"] == "onetime", collection["sms"], collection["mail"]);
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Post ... InsertPriceAlart");
                return(false);
            }
            return(true);
        }
예제 #9
0
        public async Task <string> GetUsersForDatatableAsync(IFormCollection datatableParams, bool?lockedUsers = null, int[] groupIds = null, string[] roleIds = null)
        {
            var uri = API.User.GetUsersForDatatable(_remoteServiceBaseUrl);

            var keyValues = datatableParams.Select(dt => new KeyValuePair <string, string>(dt.Key, dt.Value.ToString())).ToList();

            var dto = new
            {
                DtParameters = keyValues,
                Locked       = lockedUsers,
                GroupIds     = groupIds,
                RoleIds      = roleIds
            };

            var content = new StringContent(JsonConvert.SerializeObject(dto), System.Text.Encoding.UTF8, "application/json");

            var response = await _httpClient.PostAsync(uri, content);

            return(await response.Content.ReadAsStringAsync());
        }
예제 #10
0
        public async Task <string> GetAuditLogsForDatatable(IFormCollection formCollection, DateTime?startDate, DateTime?endDate)
        {
            var uri = API.Log.GetAuditLogsForDataTable(_remoteServiceBaseUrl);

            var keyValues = formCollection.Select(dt => new KeyValuePair <string, string>(dt.Key, dt.Value.ToString())).ToList();

            var dto = new
            {
                DataTableParameters = keyValues,
                StartDate           = startDate,
                EndDate             = endDate
            };

            var content = new StringContent(JsonConvert.SerializeObject(dto), System.Text.Encoding.UTF8, "application/json");

            var response = await _httpClient.PostAsync(uri, content);

            var audits = await response.Content.ReadAsStringAsync();

            return(audits);
        }
예제 #11
0
        public async Task <string> GetContactsForDataTable(IFormCollection datatableParams, List <int> listIds = null, bool?active = null, List <int> excludeIds = null)
        {
            var uri = API.Contact.GetContactsForDataTable(_remoteServiceBaseUrl);

            var keyValues = datatableParams.Select(dt => new KeyValuePair <string, string>(dt.Key, dt.Value.ToString())).ToList();

            var dto = new
            {
                DataTableParameters = keyValues,
                Active     = active,
                ListIds    = listIds,
                ExcludeIds = excludeIds
            };

            var content = new StringContent(JsonConvert.SerializeObject(dto), System.Text.Encoding.UTF8, "application/json");

            var response = await _httpClient.PostAsync(uri, content);

            var contacts = await response.Content.ReadAsStringAsync();

            return(contacts);
        }
예제 #12
0
 public static object ObjectFromFormPost(IFormCollection form, Type type)
 {
     return(UnreflectObject(new JObject(form.Select(KvpToJProperty)), type));
 }
 private IQueryCollection _GetQueryCollectionFromFormCollection(IFormCollection formCollection)
 {
     return(new QueryCollection(formCollection.Select(x => x).ToDictionary(x => x.Key, x => x.Value)));
 }
예제 #14
0
 private string GetFormText(IFormCollection form)
 {
     return(string.Join("\r\n", form.Select(field => $"{field.Key} = {field.Value}")));
 }
예제 #15
0
        /// <summary>
        ///
        /// </summary>
        /// <returns>Task<Dictionary<string, string>></returns>
        public async Task <Dictionary <string, string> > GetFormData( )
        {
            Dictionary <string, string> dct = new Dictionary <string, string>(StringComparer.CurrentCultureIgnoreCase);

            if (Request.ContentType == "application/json")
            {
                //Read JSON Data From Request Stream
                string content = Encoding.UTF8.GetString(await this.ReadBody( ));
                var    dict    = _jss.Deserialize <Dictionary <string, object> >(content);
                foreach (var pair in dict)
                {
                    string value = (pair.Value is string) ? Convert.ToString(pair.Value) : _jss.Serialize(pair.Value);
                    dct.Add(pair.Key, value);
                }
                return(dct);
            }
            if (Request.ContentType.IndexOf("multipart/form-data") > -1)
            {
                //Read Multipart Form Data From Request Stream
                //8:14 PM 8/15/2018
                string content = Encoding.UTF8.GetString(await this.ReadBody( ));
                if (content.IndexOf("\r\n") <= -1)
                {
                    return(dct);
                }
                string ct = Context.Request.Headers["Content-Type"];
                if (ct.IndexOf("WebKitFormBoundary") <= -1)
                {
                    return(dct);
                }
                string[] cta = ct.Split(new string[] { "----" }, StringSplitOptions.RemoveEmptyEntries);
                if (cta == null || cta.Length < 1)
                {
                    return(dct);
                }
                string boundary = cta[1]; cta = null;
                if (content.IndexOf(boundary) <= -1 || boundary.IndexOf("WebKitFormBoundary") <= -1)
                {
                    return(dct);
                }
                boundary = "----" + boundary;
                string[] contentArray = content.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
                content = null;
                string prop = string.Empty;
                contentArray.Select(a => {
                    if (a == boundary)
                    {
                        return(a);
                    }
                    if (a.IndexOf(boundary) > -1)
                    {
                        return(a);
                    }
                    if (a.IndexOf("Content-Disposition: form-data;") > -1)
                    {
                        string[] arr = a.Split(new string[] { "=" }, StringSplitOptions.RemoveEmptyEntries);
                        if (arr == null || arr.Length < 1)
                        {
                            return(a);
                        }
                        prop = arr[1];
                        prop = prop.Replace("\\", "").Replace("\"", "");
                        return(a);
                    }
                    dct.Add(prop, a);
                    return(a);
                }).ToList( );
                contentArray = null;
                return(dct);
            }
            //Try to Read Request Payload Data From Request Stream
            IFormCollection formData = await Context.Request.ReadFormAsync( );

            if (formData == null)
            {
                return(dct);
            }
            formData.Select(a => {
                if (a.Value != null)
                {
                    dct.Add(a.Key, string.Join(",", a.Value));
                }
                return(a);
            });
            return(dct);
        }