Advertisement
Guest User

Untitled

a guest
Nov 7th, 2015
445
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 17.74 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using System.Text.RegularExpressions;
  3. using Microsoft.AspNet.Identity;
  4. using Microsoft.AspNet.Identity.EntityFramework;
  5. using SnippyApp.Models;
  6.  
  7. namespace SnippyApp.Data.Migrations
  8. {
  9.     using System;
  10.     using System.Data.Entity;
  11.     using System.Data.Entity.Migrations;
  12.     using System.Linq;
  13.  
  14.     internal sealed class Configuration : DbMigrationsConfiguration<SnippyApp.Data.SnippyDbContext>
  15.     {
  16.         public Configuration()
  17.         {
  18.             AutomaticMigrationsEnabled = true;
  19.         }
  20.  
  21.         protected override void Seed(SnippyApp.Data.SnippyDbContext context)
  22.         {
  23.             if (!context.Users.Any())
  24.             {
  25.                 SeedUsers(context);
  26.             }
  27.             if (!context.Labels.Any())
  28.             {
  29.                 SeedLabels(context);
  30.             }
  31.             if (!context.Languages.Any())
  32.             {
  33.                 SeedLanguages(context);
  34.             }
  35.  
  36.             if (!context.Snippets.Any())
  37.             {
  38.                 SeedSnippets(context);
  39.             }
  40.  
  41.             if (!context.Comments.Any())
  42.             {
  43.                 SeedComments(context);
  44.             }
  45.         }
  46.  
  47.         private void SeedComments(SnippyDbContext context)
  48.         {
  49.             context.Comments.Add(new Comment()
  50.             {
  51.                 Content = "Now that's really funny! I like it!",
  52.                 Author = context.Users.FirstOrDefault(u=>u.UserName=="admin"),
  53.                 CreatedOn = DateTime.Parse("30.10.2015 11:50:38"),
  54.                 Snippet = context.Snippets.FirstOrDefault(s=>s.Title== "Ternary Operator Madness")
  55.             });
  56.             context.SaveChanges();
  57.  
  58.             context.Comments.Add(new Comment()
  59.             {
  60.                 Content = "Here, have my comment!",
  61.                 Author = context.Users.FirstOrDefault(u => u.UserName == "newUser"),
  62.                 CreatedOn = DateTime.Parse("01.11.2015 15:52:42"),
  63.                 Snippet = context.Snippets.FirstOrDefault(s => s.Title == "Ternary Operator Madness")
  64.             });
  65.             context.SaveChanges();
  66.  
  67.             context.Comments.Add(new Comment()
  68.             {
  69.                 Content = "I didn't manage to comment first :(",
  70.                 Author = context.Users.FirstOrDefault(u => u.UserName == "someUser"),
  71.                 CreatedOn = DateTime.Parse("02.11.2015 05:30:20"),
  72.                 Snippet = context.Snippets.FirstOrDefault(s => s.Title == "Ternary Operator Madness")
  73.             });
  74.             context.SaveChanges();
  75.  
  76.             context.Comments.Add(new Comment()
  77.             {
  78.                 Content = "That's why I love Python - everything is so simple!",
  79.                 Author = context.Users.FirstOrDefault(u => u.UserName == "newUser"),
  80.                 CreatedOn = DateTime.Parse("27.10.2015 15:28:14"),
  81.                 Snippet = context.Snippets.FirstOrDefault(s => s.Title == "Reverse a String")
  82.             });
  83.             context.SaveChanges();
  84.  
  85.             context.Comments.Add(new Comment()
  86.             {
  87.                 Content = "I have always had problems with Geometry in school. Thanks to you I can now do this without ever having to learn this damn subject",
  88.                 Author = context.Users.FirstOrDefault(u => u.UserName == "someUser"),
  89.                 CreatedOn = DateTime.Parse("29.10.2015 15:08:42"),
  90.                 Snippet = context.Snippets.FirstOrDefault(s => s.Title == "Points Around A Circle For GameObject Placement")
  91.             });
  92.             context.SaveChanges();
  93.  
  94.             context.Comments.Add(new Comment()
  95.             {
  96.                 Content = "Thank you. However, I think there must be a simpler way to do this. I can't figure it out now, but I'll post it when I'm ready.",
  97.                 Author = context.Users.FirstOrDefault(u => u.UserName == "admin"),
  98.                 CreatedOn = DateTime.Parse("03.11.2015 12:56:20"),
  99.                 Snippet = context.Snippets.FirstOrDefault(s => s.Title == "Numbers only in an input field")
  100.             });
  101.             context.SaveChanges();
  102.         }
  103.  
  104.         private void SeedSnippets(SnippyDbContext context)
  105.         {
  106.             context.Snippets.Add(new Snippet()
  107.             {
  108.                 Title = "Ternary Operator Madness",
  109.                 Description = "This is how you DO NOT user ternary operators in C#!",
  110.                 Author = context.Users.FirstOrDefault(u=>u.UserName=="admin"),
  111.                 Code = "bool X = Glob.UserIsAdmin ? true : false;",
  112.                 CreatedOn = DateTime.Parse("26.10.2015 17:20:33"),
  113.                 Language = context.Languages.FirstOrDefault(l=>l.Name== "C#"),
  114.                 Labels = new List<Label>()
  115.                 {
  116.                     context.Labels.FirstOrDefault(l=>l.Text=="funny")
  117.                 }
  118.             });
  119.             context.SaveChanges();
  120.  
  121.             context.Snippets.Add(new Snippet()
  122.             {
  123.                 Title = "Points Around A Circle For GameObject Placement",
  124.                 Description = "Determine points around a circle which can be used to place elements around a central point",
  125.                 Author = context.Users.FirstOrDefault(u => u.UserName == "admin"),
  126.                 Code = @"private Vector3 DrawCircle(float centerX, float centerY, float radius, float totalPoints, float currentPoint)
  127.                {
  128.                float ptRatio = currentPoint / totalPoints;
  129.                float pointX = centerX + (Mathf.Cos(ptRatio * 2 * Mathf.PI)) * radius;
  130.                float pointY = centerY + (Mathf.Sin(ptRatio * 2 * Mathf.PI)) * radius;
  131.  
  132.                Vector3 panelCenter = new Vector3(pointX, pointY, 0.0f);
  133.  
  134.                return panelCenter;
  135.                }
  136.                ",
  137.                 CreatedOn = DateTime.Parse("26.10.2015 20:15:30"),
  138.                 Language = context.Languages.FirstOrDefault(l => l.Name == "C#"),
  139.                 Labels = new List<Label>()
  140.                 {
  141.                      context.Labels.FirstOrDefault(l=>l.Text=="geometry"),
  142.                      context.Labels.FirstOrDefault(l=>l.Text=="games"),
  143.                 }
  144.             });
  145.             context.SaveChanges();
  146.  
  147.             context.Snippets.Add(new Snippet()
  148.             {
  149.                 Title = "forEach. How to break?",
  150.                 Description = "Array.prototype.forEach You can't break forEach. So use \"some\" or \"every\". Array.prototype.some some is pretty much the same as forEach but it break when the callback returns true. Array.prototype.every every is almost identical to some except it's expecting false to break the loop.",
  151.                 Author = context.Users.FirstOrDefault(u => u.UserName == "newUser"),
  152.                 Code = "var ary = [\"JavaScript\", \"Java\", \"CoffeeScript\", \"TypeScript\"]; "
  153. + "                                                                       "
  154. + "ary.some(function (value, index, _ary) {                               "
  155. + " console.log(index + \": \" + value);                                 "
  156. + " return value === \"CoffeeScript\";                                   "
  157. + "});                                                                    "
  158. + "// output:                                                             "
  159. + "// 0: JavaScript                                                       "
  160. + "// 1: Java                                                             "
  161. + "// 2: CoffeeScript                                                     "
  162. + "                                                                       "
  163. + "ary.every(function(value, index, _ary) {                               "
  164. + " console.log(index + \": \" + value);                                 "
  165. + " return value.indexOf(\"Script\") > -1;                               "
  166. + "});                                                                    "
  167. + "// output:                                                             "
  168. + "// 0: JavaScript                                                       "
  169. + "// 1: Java                                                             "
  170. ,
  171.                 CreatedOn = DateTime.Parse("27.10.2015 10:53:20"),
  172.                 Language = context.Languages.FirstOrDefault(l => l.Name == "JavaScript"),
  173.                 Labels = new List<Label>()
  174.                 {
  175.                     context.Labels.FirstOrDefault(l=>l.Text=="jquery"),
  176.                     context.Labels.FirstOrDefault(l=>l.Text=="useful"),
  177.                     context.Labels.FirstOrDefault(l=>l.Text=="web"),
  178.                     context.Labels.FirstOrDefault(l=>l.Text=="front-end")
  179.                 }
  180.             });
  181.             context.SaveChanges();
  182.  
  183.  
  184.  
  185.             context.Snippets.Add(new Snippet()
  186.             {
  187.                 Title = "Numbers only in an input field",
  188.                 Description = "Method allowing only numbers (positive / negative / with commas or decimal points) in a field",
  189.                 Author = context.Users.FirstOrDefault(u => u.UserName == "someUser"),
  190.                 Code = "$(\"#input\").keypress(function(event){        "
  191. + " var charCode = (event.which) ? event.which : window.event.keyCode; "
  192. + " if (charCode <= 13) { return true; }                               "
  193. + " else {                                                             "
  194. + "     var keyChar = String.fromCharCode(charCode);                   "
  195. + "     var regex = new RegExp(\"[0-9,.-]\");                          "
  196. + "     return regex.test(keyChar);                                    "
  197. + " }                                                                  "
  198. + "});                                                                 "
  199.                 ,
  200.                 CreatedOn = DateTime.Parse("28.10.2015 09:00:56"),
  201.                 Language = context.Languages.FirstOrDefault(l => l.Name == "JavaScript"),
  202.                 Labels = new List<Label>()
  203.                 {
  204.                     context.Labels.FirstOrDefault(l=>l.Text=="web"),
  205.                      context.Labels.FirstOrDefault(l=>l.Text=="front-end"),
  206.                 }
  207.             });
  208.             context.SaveChanges();
  209.  
  210.             context.Snippets.Add(new Snippet()
  211.             {
  212.                 Title = "Create a link directly in an SQL query",
  213.                 Description = "That's how you create links - directly in the SQL!",
  214.                 Author = context.Users.FirstOrDefault(u => u.UserName == "admin"),
  215.                 Code = "Code:                                                                                                                                        "
  216. + "SELECT DISTINCT                                                                                                                              "
  217. + "              b.Id,                                                                                                                          "
  218. + "              concat('<button type=\"\"button\"\" onclick=\"\"DeleteContact(', cast(b.Id as char), ')\"\">Delete...</button>') as lnkDelete  "
  219. + "FROM tblContact   b                                                                                                                          "
  220. + "WHERE ....                                                                                                                                   "
  221.  
  222.                ,
  223.                 CreatedOn = DateTime.Parse("30.10.2015 11:20:00"),
  224.                 Language = context.Languages.FirstOrDefault(l => l.Name == "SQL"),
  225.                 Labels = new List<Label>()
  226.                 {
  227.                      context.Labels.FirstOrDefault(l=>l.Text=="bug"),
  228.                      context.Labels.FirstOrDefault(l=>l.Text=="funny"),
  229.                      context.Labels.FirstOrDefault(l=>l.Text=="mysql"),
  230.                 }
  231.             });
  232.             context.SaveChanges();
  233.  
  234.             context.Snippets.Add(new Snippet()
  235.             {
  236.                 Title = "Reverse a String",
  237.                 Description = "Almost not worth having a function for...",
  238.                 Author = context.Users.FirstOrDefault(u => u.UserName == "admin"),
  239.                 Code = "def reverseString(s):                        "
  240. + " \"\"\"Reverses a string given to it.\"\"\" "
  241. + " return s[::-1]                             ",
  242.                 CreatedOn = DateTime.Parse("26.10.2015 09:35:13"),
  243.                 Language = context.Languages.FirstOrDefault(l => l.Name == "Python"),
  244.                 Labels = new List<Label>()
  245.                 {
  246.                      context.Labels.FirstOrDefault(l=>l.Text=="useful"),
  247.                    
  248.                 }
  249.             });
  250.             context.SaveChanges();
  251.  
  252.             context.Snippets.Add(new Snippet()
  253.             {
  254.                 Title = "Pure CSS Text Gradients",
  255.                 Description = "code describes how to create text gradients using only pure CSS",
  256.                 Author = context.Users.FirstOrDefault(u => u.UserName == "someUser"),
  257.                 Code = "/* CSS text gradients */                                                                                                                         "
  258. + "h2[data-text] {                                                                                                                                 "
  259. + " position: relative;                                                                                                                           "
  260. + "}                                                                                                                                               "
  261. + "h2[data-text]::after {                                                                                                                          "
  262. + " content: attr(data-text);                                                                                                                     "
  263. + " z-index: 10;                                                                                                                                  "
  264. + " color: #e3e3e3;                                                                                                                               "
  265. + " position: absolute;                                                                                                                           "
  266. + " top: 0;                                                                                                                                       "
  267. + " left: 0;                                                                                                                                      "
  268. + " -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,0)), color-stop(50%, rgba(0,0,0,1)), to(rgba(0,0,0,0)));  "
  269. ,
  270.                 CreatedOn = DateTime.Parse("22.10.2015 19:26:42"),
  271.                 Language = context.Languages.FirstOrDefault(l => l.Name == "CSS"),
  272.                 Labels = new List<Label>()
  273.                 {
  274.                      context.Labels.FirstOrDefault(l=>l.Text=="web"),
  275.                      context.Labels.FirstOrDefault(l=>l.Text=="front-end"),
  276.                 }
  277.             });
  278.             context.SaveChanges();
  279.  
  280.             context.Snippets.Add(new Snippet()
  281.             {
  282.                 Title = "Check for a Boolean value in JS",
  283.                 Description = "How to check a Boolean value - the wrong but funny way :D",
  284.                 Author = context.Users.FirstOrDefault(u => u.UserName == "admin"),
  285.                 Code = "var b = true;                     "
  286. + "                                  "
  287. + "if (b.toString().length < 5) {    "
  288. + "  //...                           "
  289. + "}                                 "
  290.  
  291. ,
  292.                 CreatedOn = DateTime.Parse("22.10.2015 05:30:04"),
  293.                 Language = context.Languages.FirstOrDefault(l => l.Name == "JavaScript"),
  294.                 Labels = new List<Label>()
  295.                 {
  296.                      context.Labels.FirstOrDefault(l=>l.Text=="funny"),
  297.                 }
  298.             });
  299.             context.SaveChanges();
  300.  
  301.         }
  302.  
  303.         private void SeedLanguages(SnippyDbContext context)
  304.         {
  305.             var languagesString = "C#, JavaScript, Python, CSS, SQL, PHP";
  306.             string[] languages = Regex.Split(languagesString, @",");
  307.  
  308.             foreach (var language in languages)
  309.             {
  310.                 context.Languages.Add(new Language()
  311.                 {
  312.                     Name = language.Trim()
  313.                 });
  314.                 context.SaveChanges();
  315.             }
  316.         }
  317.  
  318.         private void SeedUsers(SnippyDbContext context)
  319.         {
  320.             var userStore = new UserStore<User>(context);
  321.             var userManager = new UserManager<User>(userStore);
  322.             var userToInsert = new User { UserName = "admin", Email = "admin@snippy.softuni.com" };
  323.             userManager.Create(userToInsert, "adminPass123");
  324.  
  325.             userStore = new UserStore<User>(context);
  326.             userManager = new UserManager<User>(userStore);
  327.             userToInsert = new User { UserName = "someUser", Email = "someUser@example.com" };
  328.             userManager.Create(userToInsert, "someUserPass123");
  329.  
  330.             userStore = new UserStore<User>(context);
  331.             userManager = new UserManager<User>(userStore);
  332.             userToInsert = new User { UserName = "newUser", Email = "new_user@gmail.com" };
  333.             userManager.Create(userToInsert, "userPass123");
  334.         }
  335.  
  336.         private void SeedLabels(SnippyDbContext context)
  337.         {
  338.             var labelsString = "bug, funny, jquery, mysql, useful, web, geometry, back-end, front-end, games";
  339.             string[] labels = Regex.Split(labelsString, @", ");
  340.  
  341.             foreach (var label in labels)
  342.             {
  343.                 context.Labels.Add(new Label()
  344.                 {
  345.                     Text = label,
  346.                 });
  347.                 context.SaveChanges();
  348.             }
  349.  
  350.         }
  351.     }
  352. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement