public async Task <string> PostAsync(TemplateParams templateParams)
        {
            var message = await SaveTemplateAsync(templateParams);

            return("{ \"message\" : \"" + message + "\"}");
        }
示例#2
0
        public async Task <ActionResult> postJob(TemplateParams templateParams)
        {
            var tuple = await processRestfulAPICommon();

            var passwdLogin = tuple.Item1;

            if (!String.IsNullOrEmpty(tuple.Item2))
            {
                return(Content(tuple.Item2));
            }

            if (!IsSessionAvailable() && !passwdLogin)
            {
                return(BadRequest("Session timeout, please open a new window to login and resubmit."));
            }


            if (!User.Identity.IsAuthenticated && !passwdLogin)
            {
                return(BadRequest("Unauthorized User, Please login!"));
            }

            var cluster            = HttpContext.Request.Query["cluster"];
            var authorizedClusters = JsonConvert.DeserializeObject <List <string> >(HttpContext.Session.GetString("AuthorizedClusters"));

            if (!authorizedClusters.Contains(cluster))
            {
                return(BadRequest("Invalid cluster"));
            }
            var restapi = Startup.Clusters[cluster].Restapi;

            var team         = HttpContext.Session.GetString("Team");
            var teamClusters = JsonConvert.DeserializeObject <List <string> >(HttpContext.Session.GetString("TeamClusters"));

            if (!teamClusters.Contains(cluster))
            {
                return(BadRequest("Invalid Team"));
            }

            var username = HttpContext.Session.GetString("Username");

            ViewData["Username"] = username;
            var uid = HttpContext.Session.GetString("uid");
            var gid = HttpContext.Session.GetString("gid");

            templateParams.Json = templateParams.Json.Replace("$$username$$", username).Replace("$$uid$$", uid).Replace("$$gid$$", gid);
            var jobObject = JObject.Parse(templateParams.Json);

            jobObject["userName"] = HttpContext.Session.GetString("Email");
            jobObject["userId"]   = uid;
            jobObject["jobType"]  = "training";
            jobObject["vcName"]   = team;

            var runningasroot = jobObject["runningasroot"];

            if (
                !Object.ReferenceEquals(runningasroot, null) && (
                    runningasroot.ToString() == "1" ||
                    runningasroot.ToString() == true.ToString()
                    )
                )
            {
                jobObject["containerUserId"] = "0";
            }
            else
            {
                jobObject["containerUserId"] = uid;
            }

            // ToDo: Need to be included in a database,
            var familyToken = Guid.NewGuid();
            var newKey      = _familyModel.Families.TryAdd(familyToken, new FamilyModel.FamilyData
            {
                ApiPath = restapi,
                Email   = HttpContext.Session.GetString("Email"),
                UID     = HttpContext.Session.GetString("uid")
            });

            if (!newKey)
            {
                return(BadRequest("Only 1 parent is allowed per family (maybe you tried to submit the same job on two threads?)"));
            }
            jobObject["familyToken"] = String.Format("{0:N}", familyToken);
            jobObject["isParent"]    = 1;


            using (var httpClient = new HttpClient())
            {
                httpClient.BaseAddress = new Uri(restapi);
                var response = await httpClient.PostAsync("/PostJob",
                                                          new StringContent(jobObject.ToString(), System.Text.Encoding.UTF8, "application/json"));

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

                return(Content(returnInfo));
            }
        }
示例#3
0
        public System.Web.WebPages.HelperResult RenderDisplay(TemplateParams templateParams)
        {
#line default
#line hidden
            return(new System.Web.WebPages.HelperResult(__razor_helper_writer => {
#line 11 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"

                var labelClass = templateParams.GetAdditionalViewData("LabelClass");
                var controlClass = templateParams.GetAdditionalViewData("ControlClass");
                var controlTemplate = templateParams.GetAdditionalViewData("UIHint")?.ToString() ?? ViewData.ModelMetadata.TemplateHint;
                // 处理日期的赋值
                var typeName = ValueHelper.GetJsType(ViewData.ModelMetadata.ModelType);
                var valueField = typeName == "date" ? "date" : "text";

                var addtionCls = controlTemplate == "Hidden" ? "hidden" : string.Empty;


                if (controlTemplate != "Hidden")
                {
#line default
#line hidden

#line 24 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                    WriteTo(__razor_helper_writer, Html.LabelFor(m => m, new { @class = labelClass, title = Html.DisplayNameFor(m => m) }));


#line default
#line hidden

#line 24 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                }

                if (templateParams.Features.Contains(TemplateFeature.DataBind))
                {
                    var dataBind = controlTemplate == "Link" ? ""
            : valueField + ": data." + ViewData.ModelMetadata.PropertyName + ", attr:{ title: data." + ViewData.ModelMetadata.PropertyName + "}";


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "        <span");

                    WriteAttributeTo(__razor_helper_writer, "class", Tuple.Create(" class=\"", 1380), Tuple.Create("\"", 1417)

#line 31 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                                     , Tuple.Create(Tuple.Create("", 1388), Tuple.Create <System.Object, System.Int32>(controlClass

#line default
#line hidden
                                                                                                                       , 1388), false)

#line 31 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                                     , Tuple.Create(Tuple.Create(" ", 1403), Tuple.Create <System.Object, System.Int32>(addtionCls

#line default
#line hidden
                                                                                                                        , 1404), false)
                                     );

                    WriteLiteralTo(__razor_helper_writer, "\r\n                  data-type=\"");


#line 32 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                    WriteTo(__razor_helper_writer, typeName);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "\"");

                    WriteLiteralTo(__razor_helper_writer, "\r\n                  data-format=\"");


#line 33 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                    WriteTo(__razor_helper_writer, Form.GetDataFormat(ViewData.ModelMetadata));


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "\"");

                    WriteLiteralTo(__razor_helper_writer, "\r\n                  data-bind=\"");


#line 34 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                    WriteTo(__razor_helper_writer, dataBind);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "\"");

                    WriteLiteralTo(__razor_helper_writer, ">\r\n");

                    WriteLiteralTo(__razor_helper_writer, "                ");


#line 35 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                    WriteTo(__razor_helper_writer, Html.DisplayFor(m => m, controlTemplate, templateParams.HtmlFieldName, templateParams.AdditionalViewData));


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "\r\n            </span>\r\n");


#line 37 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                }
                else
                {
#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "        <span");

                    WriteAttributeTo(__razor_helper_writer, "class", Tuple.Create(" class=\"", 1768), Tuple.Create("\"", 1805)

#line 40 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                                     , Tuple.Create(Tuple.Create("", 1776), Tuple.Create <System.Object, System.Int32>(controlClass

#line default
#line hidden
                                                                                                                       , 1776), false)

#line 40 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                                     , Tuple.Create(Tuple.Create(" ", 1791), Tuple.Create <System.Object, System.Int32>(addtionCls

#line default
#line hidden
                                                                                                                        , 1792), false)
                                     );

                    WriteLiteralTo(__razor_helper_writer, ">\r\n");

                    WriteLiteralTo(__razor_helper_writer, "                ");


#line 41 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                    WriteTo(__razor_helper_writer, Html.DisplayFor(m => m, controlTemplate, templateParams.HtmlFieldName, templateParams.AdditionalViewData));


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "\r\n            </span>\r\n");


#line 43 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
                }


#line default
#line hidden
            }));

#line 44 "..\..\Views\Shared\DisplayTemplates\DisplaySection.cshtml"
        }
示例#4
0
        public async Task <string> postJob(TemplateParams templateParams)
        {
            var ret   = "invalid API call!";
            var tuple = await processRestfulAPICommon();

            var passwdLogin = tuple.Item1;

            if (!String.IsNullOrEmpty(tuple.Item2))
            {
                return(tuple.Item2);
            }


            if (!User.Identity.IsAuthenticated && !passwdLogin)
            {
                ret = "Unauthorized User, Please login!";
                return(ret);
            }
            var username = HttpContext.Session.GetString("Username");

            ViewData["Username"] = username;
            var uid     = HttpContext.Session.GetString("uid");
            var gid     = HttpContext.Session.GetString("gid");
            var restapi = HttpContext.Session.GetString("Restapi");

            templateParams.Json = templateParams.Json.Replace("$$username$$", username).Replace("$$uid$$", uid).Replace("$$gid$$", gid);
            var jobObject = JObject.Parse(templateParams.Json);

            jobObject["userName"] = HttpContext.Session.GetString("Email");
            jobObject["userId"]   = uid;
            jobObject["jobType"]  = "training";
            var runningasroot = jobObject["runningasroot"];

            if (!(Object.ReferenceEquals(runningasroot, null)) && runningasroot.ToString() == "1")
            {
                jobObject["containerUserId"] = "0";
            }
            else
            {
                jobObject["containerUserId"] = uid;
            }

            // ToDo: Need to be included in a database,
            var familyToken = Guid.NewGuid();
            var newKey      = _familyModel.Families.TryAdd(familyToken, new FamilyModel.FamilyData
            {
                ApiPath = HttpContext.Session.GetString("Restapi"),
                Email   = HttpContext.Session.GetString("Email"),
                UID     = HttpContext.Session.GetString("uid")
            });

            if (!newKey)
            {
                ret = "Only 1 parent is allowed per family (maybe you tried to submit the same job on two threads?)";
            }
            jobObject["familyToken"] = String.Format("{0:N}", familyToken);
            jobObject["isParent"]    = 1;


            using (var httpClient = new HttpClient())
            {
                httpClient.BaseAddress = new Uri(restapi);
                var response = await httpClient.PostAsync("/PostJob", new StringContent(jobObject.ToString(), System.Text.Encoding.UTF8, "application/json"));

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

                return(returnInfo);
            }
        }
示例#5
0
 public bool HasTemplateParams() => TemplateParams.Any();
示例#6
0
 public string GetTemplateParamsString() => TemplateParams.ToJson();