Пример #1
0
 protected void Page_Load(object sender, EventArgs e)
 {
     m = (Edu)Master;
     if (!m.db.Connected) { error = true; message = "Cannot connect to database."; goto End; }
     reader = m.db.Query("SELECT [name], [description] FROM " + Globals.DbName + ".[Category]");
     if (reader == null || !reader.HasRows) { error = true; message = "There are no categories."; goto End; }
     End: ;
 }
Пример #2
0
 public virtual void SaveXML(XmlElement ele)
 {
     Str.SaveXML(ele);
     Dex.SaveXML(ele);
     End.SaveXML(ele);
     Int.SaveXML(ele);
     Edu.SaveXML(ele);
     Soc.SaveXML(ele);
 }
Пример #3
0
        public async Task <ActionResult <Edu> > PostEduItemAsync(Edu eduItem)
        {
            context_.edus.Add(eduItem);
            await context_.SaveChangesAsync();

            return(CreatedAtAction(nameof(GetEdu),
                                   new { id = eduItem.EduId },
                                   eduItem));
        }
Пример #4
0
 public virtual void LoadXML(XmlElement ele)
 {
     Str.LoadXML(ele);
     Dex.LoadXML(ele);
     End.LoadXML(ele);
     Int.LoadXML(ele);
     Edu.LoadXML(ele);
     Soc.LoadXML(ele);
 }
Пример #5
0
 protected void Page_Load(object sender, EventArgs e)
 {
     m = (Edu)Master;
     if (m.userLvl < Edu.Lvls.Writer) { error = "Your user level needs to be at least Writer to add content."; goto End; }
     if (IsPostBack)
     {
         if (!m.db.Connected) { error = "Cannot connect to database."; goto End; }
         if (!m.db.NonQuery("INSERT INTO " + Globals.DbName + ".[Category] ([name], [description]) VALUES (@p1, @p2)", Text.DeHTML(Request.Form["name"]), Text.DeHTML(Request.Form["description"]))) { error = "Database error."; goto End; }
     }
     End: ;
 }
Пример #6
0
        public async Task <IActionResult> Put(int id, Edu eduItem)
        {
            if (id != eduItem.EduId)
            {
                return(BadRequest());
            }

            context_.edus.Update(eduItem);
            await context_.SaveChangesAsync();

            return(NoContent());
        }
Пример #7
0
 protected void Page_Load(object sender, EventArgs e)
 {
     m = (Edu)Master;
     if (!m.db.Connected) { error = true; message = "Cannot connect to database."; goto End; }
     if (m.userLvl < Edu.Lvls.Mod) { message = "You don't have the necessary level to be here."; error = true; goto End; }
     if (IsPostBack)
     {
         if (Request.Form["submit"] == "Approve")
             if (m.db.NonQuery("UPDATE " + Globals.DbName + ".[Article] SET [approved]=1, [time]=@p1 WHERE [id]=@p2", DateTime.Now, Request.Form["id"])) message = "Article approved successfully.";
             else message = "Database error.";
         else if (Request.Form["submit"] == "Delete")
             if (m.db.NonQuery("DELETE FROM " + Globals.DbName + ".[Article] WHERE id=@p1 AND [approved]=0", Request.Form["id"])) message = "Article permanently deleted.";
             else message = "Database error.";
         error = true; // not error, simulates something like display=false; there is no unapproved article with this id anymore
         goto End;
     }
     reader = m.db.Query("SELECT [id], [user], [time], [name], [summary], [body] FROM " + Globals.DbName + ".[Article] WHERE [id]=@p1 AND [approved]=0", Request.QueryString["id"]);
     if (reader == null || !reader.HasRows) { error = true; message = "There is no such unapproved article."; goto End; }
     End: ;
 }
Пример #8
0
 protected void Page_Load(object sender, EventArgs e)
 {
     m = (Edu)Master;
     if (Request.QueryString["start"] != null)
         if (int.TryParse(Request.QueryString["start"], out start))
         {
             if (start < 1) start = 1;
         }
         else start = 1;
     if (!m.db.Connected) { error = true; message = "Cannot connect to database."; goto End; }
     SqlDataReader temp = m.db.Query("SELECT COUNT(*) AS num FROM " + Globals.DbName + ".[Article] WHERE [approved]=1 AND [category]=@p1", Request.QueryString["name"]);
     temp.Read();
     num = (int)temp["num"];
     temp.Close();
     reader = m.db.Query(
         "SELECT [id], [user], [time], [name], [summary] FROM" +
         "( SELECT [id], [user], [time], [name], [summary], [approved], ROW_NUMBER() OVER (ORDER BY [time] DESC) AS rownum FROM " + Globals.DbName + ".[Article] WHERE [approved]=1 AND [category]=@p3 )" +
         "AS temp WHERE rownum BETWEEN @p1 AND (@p1 +@p2-1)", start, perPage, Request.QueryString["name"]);
     if (reader == null || !reader.HasRows) { error = true; message = "There are no articles."; goto End; }
     End: ;
 }
Пример #9
0
 protected void Page_Load(object sender, EventArgs e)
 {
     m = (Edu)Master;
     if (!m.db.Connected) { error = true; message = "Cannot connect to database."; goto End; }
     if (m.userLvl != Edu.Lvls.Admin) { message = "You don't have the necessary level to be here."; error = true; goto End; }
     if (IsPostBack)
     {
         error = true; // 3 out of 4 possible cases
         if (Request.Form["submit"] == "Edit")
             if (m.db.NonQuery("UPDATE " + Globals.DbName + ".[User] SET [lvl]=@p1 WHERE [email]=@p2", Request.Form["lvl"], Request.Form["email"]))
             { message = "User edited successfully."; error = false; }
             else message = "Database error.";
         else if (Request.Form["submit"] == "Delete")
             if (m.db.NonQuery("DELETE FROM " + Globals.DbName + ".[User] WHERE [email]=@p1", Request.Form["email"])) message = "User permanently deleted.";
             else message = "Database error.";
         goto End;
     }
     reader = m.db.Query("SELECT [email], [lvl] FROM " + Globals.DbName + ".[User] WHERE [email]=@p1", Request.QueryString["email"]);
     if (reader == null || !reader.HasRows) { error = true; message = "There is no such user."; goto End; }
     End: ;
 }
Пример #10
0
 protected void Page_Load(object sender, EventArgs e)
 {
     m = (Edu)Master;
     if (Request.QueryString["start"] != null)
         if (int.TryParse(Request.QueryString["start"], out start))
         {
             if (start < 1) start = 1;
         }
         else start = 1;
     if (!m.db.Connected) { error = true; message = "Cannot connect to database."; goto End; }
     if (m.userLvl != Edu.Lvls.Admin) { message = "You don't have the necessary level to be here."; error = true; goto End; }
     SqlDataReader temp = m.db.Query("SELECT COUNT(*) AS num FROM " + Globals.DbName + ".[User]");
     temp.Read();
     num = (int)temp["num"];
     temp.Close();
     reader = m.db.Query(
         "SELECT [email], [lvl] FROM" +
         "( SELECT [email], [lvl], ROW_NUMBER() OVER (ORDER BY [email] DESC) AS rownum FROM " + Globals.DbName + ".[User] WHERE [lvl] < 4)" +
         "AS temp WHERE rownum BETWEEN @p1 AND (@p1 +@p2-1)", start, perPage);
     if (reader == null || !reader.HasRows) { error = true; message = "Database error."; goto End; }
     End: ;
 }
Пример #11
0
 protected void Page_Load(object sender, EventArgs e)
 {
     m = (Edu)Master;
     if (!m.db.Connected) { error = "Cannot connect to database."; goto End; }
     if (m.userLvl < Edu.Lvls.Writer) { error = "Your user level needs to be at least Writer to add content."; goto End; }
     reader = m.db.Query("SELECT [name] FROM [Category]");
     if (!reader.HasRows || reader == null) { error = "There are no categories yet."; goto End; }
     if (IsPostBack)
     {
         object[] parameters = new object[6];
         parameters[0] = Session["email"];
         parameters[1] = DateTime.Now;
         parameters[2] = Text.DeHTML(Request.Form["name"]);
         parameters[3] = Text.DeHTML(Request.Form["summary"]);
         parameters[4] = Text.DeHTML(Request.Form["body"]);
         parameters[5] = Request.Form["category"];
         parameters[6] = Request.Form["comments"];
         if (!m.db.NonQuery("INSERT INTO " + Globals.DbName + ".[Article] ([user], [time], [name], [summary], [body], [approved], [category], [comments]) VALUES (@p1, @p2, @p3, @p4, @p5, 0, @p6, @p7)", parameters))
         { error = "Database error."; goto End; }
     }
     End: ;
 }
Пример #12
0
 protected void Page_Load(object sender, EventArgs e)
 {
     m = (Edu)Master;
     if (m.userLvl > Edu.Lvls.Guest)
     {
         response += 8;
         if (IsPostBack && Request.Form["submit"] == "Logout") { Session.Clear(); response += 4; }
         goto End;
     }
     if (IsPostBack)
     {
         if (Request.Form["submit"] == "Login")
         {
             response += 1;
             if (!m.db.Connected) { error = "Cannot connect to database."; goto End; }
             SqlDataReader reader = m.db.Query("SELECT [email] FROM " + Globals.DbName + ".[User] WHERE [email]=@p1 AND [pass]=@p2",
                 Request.Form["l_mail"], sha.ComputeHash(ASCIIEncoding.ASCII.GetBytes(Request.Form["l_pwd"])));
             if (reader == null || !reader.HasRows) { error = "Login failed, wrong mail or password."; goto End; }
             reader.Read();
             Session["email"] = reader["email"];
             reader.Close();
             response += 4;
         }
         else if (Request.Form["submit"] == "Register")
         {
             response += 2;
             if (!m.db.Connected) { error = "Cannot connect to database."; goto End; }
             SqlDataReader reader = m.db.Query("SELECT [email] FROM " + Globals.DbName + ".[User] WHERE [email]=@p1", Request.Form["r_mail"]);
             if (!(reader == null || !reader.HasRows)) { error = "This email is already taken."; goto End; }
             reader.Close();
             if (!m.db.NonQuery("INSERT INTO " + Globals.DbName + ".[User] VALUES (@p1, @p2, 1)",
                 Text.DeHTML(Request.Form["r_mail"]), sha.ComputeHash(ASCIIEncoding.ASCII.GetBytes(Request.Form["r_pwd"]))))
             { error = "Database error. Try again later."; goto End; }
             response += 4;
         }
     }
     End: ;
 }
Пример #13
0
 public virtual string SocialUPP()
 {
     return(Int.ToString() + Edu.ToString() + Soc.ToString());
 }
Пример #14
0
        public static async Task <HttpResponseMessage> Callback(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "callback")] HttpRequestMessage req,
            ExecutionContext executionContext,
            ILogger logger)
        {
            try
            {
                var secrets          = Secrets.Get(executionContext);
                var storageAccount   = CloudStorageAccount.Parse(Common.KnownEnvironmentVariables.AzureWebJobsStorage);
                var marketplaceTable = storageAccount.CreateCloudTableClient().GetTableReference("marketplace");

                var stateCookie = req.ReadCookie("state");

                if (string.IsNullOrEmpty(stateCookie))
                {
                    logger.LogError("state cookie is missing");
                    return(Winning(req));
                }

                var qs         = req.RequestUri.ParseQueryString();
                var stateQuery = qs.Get("state");
                var code       = qs.Get("code");

                if (stateQuery != stateCookie)
                {
                    logger.LogError("state mismatch: {StateCookie} !== {StateQuery}", stateCookie, stateQuery);
                    return(Winning(req));
                }

                if (string.IsNullOrEmpty(code))
                {
                    logger.LogError("code is missing");
                    return(Winning(req));
                }

                var tokenResponse = await HttpClient.PostAsJsonAsync("https://github.com/login/oauth/access_token", new
                {
                    client_id     = secrets.ClientId,
                    client_secret = secrets.ClientSecret,
                    code,
                    redirect_uri = secrets.RedirectUri,
                    state        = stateQuery
                });

                var tokenContent = await tokenResponse.Content.ReadAsFormDataAsync();

                if (tokenContent.Get("error") != null)
                {
                    logger.LogError("TokenResponse: " + await tokenResponse.Content.ReadAsStringAsync());
                    return(Winning(req));
                }

                var token = tokenContent.Get("access_token");

                var mktplcRequest = new HttpRequestMessage(HttpMethod.Get, "https://api.github.com/user/marketplace_purchases");
                mktplcRequest.Headers.Add("User-Agent", "IMGBOT");
                mktplcRequest.Headers.Authorization = new AuthenticationHeaderValue("token", token);
                var mktplcResponse = await HttpClient.SendAsync(mktplcRequest);

                var planDataJson = await mktplcResponse.Content.ReadAsStringAsync();

                var planData  = JsonConvert.DeserializeObject <PlanData[]>(planDataJson);
                var eduData   = new Edu();
                var isStudent = false;
                try
                {
                    var eduRequest = new HttpRequestMessage(HttpMethod.Get, "https://education.github.com/api/user");
                    eduRequest.Headers.Add("User-Agent", "IMGBOT");
                    eduRequest.Headers.Add("Authorization", "token " + token);
                    var eduResponse = await HttpClient.SendAsync(eduRequest);

                    var eduDataJson = await eduResponse.Content.ReadAsStringAsync();

                    eduData = JsonConvert.DeserializeObject <Edu>(eduDataJson);
                    if (eduData != null)
                    {
                        isStudent = eduData.Student;
                    }
                }
                catch (Exception e)
                {
                    logger.LogError(e, "Error processing auth education");
                }

                foreach (var item in planData)
                {
                    var marketplaceRow = new Marketplace(item.account.id, item.account.login)
                    {
                        AccountType = item.account.type,
                        PlanId      = item.plan.id,
                        Student     = isStudent,
                    };
                    await marketplaceTable.CreateIfNotExistsAsync();

                    await marketplaceTable.ExecuteAsync(TableOperation.InsertOrMerge(marketplaceRow));
                }

                if (planData.Length == 0 && eduData.Student == true)
                {
                    // no marketplace data so we need to get the account id from the user api
                    var userRequest = new HttpRequestMessage(HttpMethod.Get, "https://api.github.com/user");
                    userRequest.Headers.Add("User-Agent", "IMGBOT");
                    userRequest.Headers.Add("Authorization", "token " + token);
                    var userResponse = await HttpClient.SendAsync(userRequest);

                    var userDataJson = await userResponse.Content.ReadAsStringAsync();

                    var userData       = JsonConvert.DeserializeObject <Account>(userDataJson);
                    var marketplaceRow = new Marketplace(userData.id, userData.login)
                    {
                        AccountType = userData.type,
                        PlanId      = 1337,
                        Student     = eduData.Student,
                    };

                    await marketplaceTable.CreateIfNotExistsAsync();

                    await marketplaceTable.ExecuteAsync(TableOperation.InsertOrMerge(marketplaceRow));
                }

                return(Winning(req, token, stateQuery));
            }
            catch (Exception e)
            {
                logger.LogError(e, "Error processing auth");
            }

            return(Winning(req));
        }
Пример #15
0
 public override string SocialUPP()
 {
     return(Int.ToString() + Edu.ToString() + Soc.ToString() + Chr.ToString());
 }
Пример #16
0
        static void Main(string[] args)
        {
            Object o = new Object();
            Console.WriteLine(o is int);
            // False

            Object i = 3;
            string s = i as string;
            Console.WriteLine("the object i is {0}", s);
            // the object i is

            Edu e = new Edu();
            Console.WriteLine("GetType():{0}", e.GetType());
            // GetType():IsAs.Program+Edu
            Console.WriteLine("Typeof():{0}", typeof(Edu));
            // Typeof():IsAs.Program+Edu
            Console.WriteLine(e.GetType() == typeof(Edu));
            // True

            foreach (var _mi in typeof(Edu).GetMethods())
            {
                Console.WriteLine(_mi);
            }
            /*
            System.String get_Name()
            Void set_Name(System.String)
            System.String get_Age()
            Void set_Age(System.String)
            System.String School()
            System.String ToString()
            Boolean Equals(System.Object)
            Int32 GetHashCode()
            System.Type GetType()
            */

            foreach (var _mi in e.GetType().GetMethods())
            {
                Console.WriteLine(_mi);
            }
            /*
            System.String get_Name()
            Void set_Name(System.String)
            System.String get_Age()
            Void set_Age(System.String)
            System.String School()
            System.String ToString()
            Boolean Equals(System.Object)
            Int32 GetHashCode()
            System.Type GetType()
            */

            foreach (var _mi in typeof(Edu).GetMembers())
            {
                Console.WriteLine(_mi);
            }
            /*
            System.String get_Name()
            Void set_Name(System.String)
            System.String get_Age()
            Void set_Age(System.String)
            System.String School()
            System.String ToString()
            Boolean Equals(System.Object)
            Int32 GetHashCode()
            System.Type GetType()
            Void .ctor()
            System.String Name
            System.String Age
            */

            foreach (var _mi in e.GetType().GetMembers())
            {
                Console.WriteLine(_mi);
            }
            /*
            System.String get_Name()
            Void set_Name(System.String)
            System.String get_Age()
            Void set_Age(System.String)
            System.String School()
            System.String ToString()
            Boolean Equals(System.Object)
            Int32 GetHashCode()
            System.Type GetType()
            Void .ctor()
            System.String Name
            System.String Age
            */
        }
Пример #17
0
		//---------------------------------------------------------------------

		public PlugIn(Edu.Wisc.Forest.Flel.Util.PlugIns.IInfo info,
		              string initFile)
		{
			this.info = info;
			this.initFile = initFile;
		}
Пример #18
0
 public override string SocialUPP()
 {
     return(string.Format("{0}{1}{2}-{3}", Int.ToString(), Edu.ToString(), Soc.ToString(), Psi.ToString()));
 }