Advertisement
Guest User

Untitled

a guest
Mar 27th, 2018
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.30 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using MedicalData;
  6. using MedicalData.Models;
  7. using Microsoft.AspNetCore;
  8. using Microsoft.AspNetCore.Hosting;
  9. using Microsoft.AspNetCore.Identity;
  10. using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
  11. using Microsoft.Extensions.DependencyInjection;
  12. using Microsoft.Extensions.Logging;
  13.  
  14. namespace Medical
  15. {
  16. public class Program
  17. {
  18. public static async Task<IdentityResult> AssignRoles(IServiceProvider services, string email, string[] roles)
  19. {
  20. var userManager = services.GetService<UserManager<ApplicationUser>>();
  21. var user = await userManager.FindByEmailAsync(email);
  22. var result = await userManager.AddToRoleAsync(user, roles[0]);
  23. return result;
  24. }
  25.  
  26.  
  27. public static IWebHost BuildWebHost(string[] args)
  28. {
  29. return WebHost.CreateDefaultBuilder(args)
  30. .UseKestrel()
  31. .UseContentRoot(Directory.GetCurrentDirectory())
  32. .UseIISIntegration()
  33. .UseStartup<Startup>()
  34. .UseApplicationInsights()
  35. .Build();
  36. }
  37.  
  38. public static void Main(string[] args)
  39. {
  40. var webHost = BuildWebHost(args);
  41.  
  42. using (var scope = webHost.Services.CreateScope())
  43. {
  44. var services = scope.ServiceProvider;
  45. try
  46. {
  47. var serviceProvider = services.GetRequiredService<IServiceProvider>();
  48. var context = serviceProvider.GetRequiredService<MedicalContext>();
  49. context.Database.EnsureCreated();
  50.  
  51. //Seed Data
  52. DbInitializer.CreateRoles(serviceProvider);
  53. DbInitializer.AddAdministrator(serviceProvider);
  54. DbInitializer.AddAdministrator(serviceProvider);
  55. DbInitializer.AddProcedures(serviceProvider);
  56. DbInitializer.AddDoctors(serviceProvider);
  57. DbInitializer.AddProceduresToDoctor(serviceProvider);
  58. }
  59. catch (Exception ex)
  60. {
  61. var logger = services.GetRequiredService<ILogger<Program>>();
  62. logger.LogError(ex, "An error occurred while seeding the database.");
  63. }
  64. }
  65.  
  66. webHost.Run();
  67. }
  68.  
  69.  
  70. public static class SeedData
  71. {
  72. public static async void InitializeAsync(IServiceProvider serviceProvider)
  73. {
  74. string[] roles = {"ADMINISTRATOR", "Client"};
  75. var context = serviceProvider.GetRequiredService<MedicalContext>();
  76. context.Database.EnsureCreated();
  77.  
  78. if (!context.Doctors.Any())
  79. {
  80. context.Doctors.Add(new Doctor
  81. {
  82. FirstName = "Michael",
  83. Lastname = "Robbins",
  84. BirthDay = new DateTime(1975, 10, 1),
  85. Information =
  86. "If you have neck or back pain, this is where you need to go! Dr. Michael Robbins is the best chiropractor in Markham. His knowledge, skills and patience is second to.",
  87. UrlImage = "/doctors/doctor1.jpg",
  88. Address = "795 Folsom Ave, Suite 600 San Francisco, CADGE 94107",
  89.  
  90. WorkTimes = new[]
  91. {
  92. new WorkTime
  93. {
  94. DayNumber = 0,
  95. StartWorkingDay = new TimeSpan(08, 00, 00),
  96. EndWorkingTime = new TimeSpan(18, 00, 00)
  97. },
  98. new WorkTime
  99. {
  100. DayNumber = 1,
  101. StartWorkingDay = new TimeSpan(08, 00, 00),
  102. EndWorkingTime = new TimeSpan(18, 00, 00)
  103. },
  104. new WorkTime
  105. {
  106. DayNumber = 2,
  107. StartWorkingDay = new TimeSpan(08, 00, 00),
  108. EndWorkingTime = new TimeSpan(18, 00, 00)
  109. },
  110. new WorkTime
  111. {
  112. DayNumber = 3,
  113. StartWorkingDay = new TimeSpan(08, 00, 00),
  114. EndWorkingTime = new TimeSpan(18, 00, 00)
  115. },
  116. new WorkTime
  117. {
  118. DayNumber = 4,
  119. StartWorkingDay = new TimeSpan(08, 00, 00),
  120. EndWorkingTime = new TimeSpan(18, 00, 00)
  121. },
  122. new WorkTime
  123. {
  124. DayNumber = 5,
  125. StartWorkingDay = new TimeSpan(08, 00, 00),
  126. EndWorkingTime = new TimeSpan(18, 00, 00)
  127. }
  128. }
  129. });
  130. context.Doctors.Add(new Doctor
  131. {
  132. FirstName = "David",
  133. Lastname = "Warketin",
  134. BirthDay = new DateTime(1990, 10, 1),
  135. Information =
  136. "I've been having problems with colitis.I called Dr.Warkentin at 10pm it was so bad.Not only did he pick up but was very gracious and understanding. ",
  137. UrlImage = "/doctors/doctor2.jpg",
  138. Address = "795 Folsom Ave, Suite 600 San Francisco, CADGE 94107",
  139. WorkTimes = new[]
  140. {
  141. new WorkTime
  142. {
  143. DayNumber = 0,
  144. StartWorkingDay = new TimeSpan(08, 00, 00),
  145. EndWorkingTime = new TimeSpan(18, 00, 00)
  146. },
  147. new WorkTime
  148. {
  149. DayNumber = 1,
  150. StartWorkingDay = new TimeSpan(08, 00, 00),
  151. EndWorkingTime = new TimeSpan(18, 00, 00)
  152. },
  153. new WorkTime
  154. {
  155. DayNumber = 2,
  156. StartWorkingDay = new TimeSpan(08, 00, 00),
  157. EndWorkingTime = new TimeSpan(18, 00, 00)
  158. },
  159. new WorkTime
  160. {
  161. DayNumber = 3,
  162. StartWorkingDay = new TimeSpan(08, 00, 00),
  163. EndWorkingTime = new TimeSpan(18, 00, 00)
  164. },
  165. new WorkTime
  166. {
  167. DayNumber = 4,
  168. StartWorkingDay = new TimeSpan(08, 00, 00),
  169. EndWorkingTime = new TimeSpan(18, 00, 00)
  170. },
  171. new WorkTime
  172. {
  173. DayNumber = 5,
  174. StartWorkingDay = new TimeSpan(08, 00, 00),
  175. EndWorkingTime = new TimeSpan(18, 00, 00)
  176. },
  177. new WorkTime
  178. {
  179. DayNumber = 6,
  180. StartWorkingDay = new TimeSpan(08, 00, 00),
  181. EndWorkingTime = new TimeSpan(18, 00, 00)
  182. }
  183. }
  184. });
  185. context.Doctors.Add(new Doctor
  186. {
  187. FirstName = "Bruce",
  188. Lastname = "Hoffman",
  189. BirthDay = new DateTime(1960, 10, 1),
  190. Information =
  191. "DR.HOFFMAN TREATED ME AND MY FELLOW MARINE FOR PTSD. DR. HOFFMAN TAUGHT US HOW TO CONTROL OUT THOUGHTS",
  192. UrlImage = "/doctors/doctor3.jpg",
  193. WorkTimes = new[]
  194. {
  195. new WorkTime
  196. {
  197. DayNumber = 0,
  198. StartWorkingDay = new TimeSpan(08, 00, 00),
  199. EndWorkingTime = new TimeSpan(18, 00, 00)
  200. },
  201. new WorkTime
  202. {
  203. DayNumber = 1,
  204. StartWorkingDay = new TimeSpan(08, 00, 00),
  205. EndWorkingTime = new TimeSpan(18, 00, 00)
  206. },
  207. new WorkTime
  208. {
  209. DayNumber = 2,
  210. StartWorkingDay = new TimeSpan(08, 00, 00),
  211. EndWorkingTime = new TimeSpan(18, 00, 00)
  212. },
  213. new WorkTime
  214. {
  215. DayNumber = 3,
  216. StartWorkingDay = new TimeSpan(08, 00, 00),
  217. EndWorkingTime = new TimeSpan(18, 00, 00)
  218. },
  219. new WorkTime
  220. {
  221. DayNumber = 4,
  222. StartWorkingDay = new TimeSpan(08, 00, 00),
  223. EndWorkingTime = new TimeSpan(18, 00, 00)
  224. },
  225. new WorkTime
  226. {
  227. DayNumber = 5,
  228. StartWorkingDay = new TimeSpan(08, 00, 00),
  229. EndWorkingTime = new TimeSpan(18, 00, 00)
  230. },
  231. new WorkTime
  232. {
  233. DayNumber = 6,
  234. StartWorkingDay = new TimeSpan(08, 00, 00),
  235. EndWorkingTime = new TimeSpan(18, 00, 00)
  236. }
  237. }
  238. });
  239. context.Doctors.Add(new Doctor
  240. {
  241. FirstName = "Tassos",
  242. Lastname = "Irikinas",
  243. BirthDay = new DateTime(1975, 10, 1),
  244. Information =
  245. "Great experience recently. Liked the personal touch with his email. Expecting-I hope- a result similar to the ones mentioned on this site. ",
  246. UrlImage = "/doctors/doctor4.jpg",
  247. WorkTimes = new[]
  248. {
  249. new WorkTime
  250. {
  251. DayNumber = 0,
  252. StartWorkingDay = new TimeSpan(08, 00, 00),
  253. EndWorkingTime = new TimeSpan(18, 00, 00)
  254. },
  255. new WorkTime
  256. {
  257. DayNumber = 1,
  258. StartWorkingDay = new TimeSpan(08, 00, 00),
  259. EndWorkingTime = new TimeSpan(18, 00, 00)
  260. },
  261. new WorkTime
  262. {
  263. DayNumber = 2,
  264. StartWorkingDay = new TimeSpan(08, 00, 00),
  265. EndWorkingTime = new TimeSpan(18, 00, 00)
  266. },
  267. new WorkTime
  268. {
  269. DayNumber = 3,
  270. StartWorkingDay = new TimeSpan(08, 00, 00),
  271. EndWorkingTime = new TimeSpan(18, 00, 00)
  272. },
  273. new WorkTime
  274. {
  275. DayNumber = 4,
  276. StartWorkingDay = new TimeSpan(08, 00, 00),
  277. EndWorkingTime = new TimeSpan(18, 00, 00)
  278. },
  279. new WorkTime
  280. {
  281. DayNumber = 5,
  282. StartWorkingDay = new TimeSpan(08, 00, 00),
  283. EndWorkingTime = new TimeSpan(18, 00, 00)
  284. },
  285. new WorkTime
  286. {
  287. DayNumber = 6,
  288. StartWorkingDay = new TimeSpan(08, 00, 00),
  289. EndWorkingTime = new TimeSpan(18, 00, 00)
  290. }
  291. }
  292. });
  293. context.Doctors.Add(new Doctor
  294. {
  295. FirstName = "Jose",
  296. Lastname = "Rodriquez",
  297. BirthDay = new DateTime(1960, 10, 1),
  298. Information =
  299. "Le dr Rodriguez m'a opérée il y a 3 mois pour une hernie incisionnelle. C'est un chirurgien d'une compétence et d'une humanité hors du commun",
  300. UrlImage = "/doctors/doctor5.jpg",
  301. WorkTimes = new[]
  302. {
  303. new WorkTime
  304. {
  305. DayNumber = 0,
  306. StartWorkingDay = new TimeSpan(08, 00, 00),
  307. EndWorkingTime = new TimeSpan(18, 00, 00)
  308. },
  309.  
  310. new WorkTime
  311. {
  312. DayNumber = 2,
  313. StartWorkingDay = new TimeSpan(08, 00, 00),
  314. EndWorkingTime = new TimeSpan(18, 00, 00)
  315. },
  316.  
  317. new WorkTime
  318. {
  319. DayNumber = 4,
  320. StartWorkingDay = new TimeSpan(08, 00, 00),
  321. EndWorkingTime = new TimeSpan(18, 00, 00)
  322. },
  323. new WorkTime
  324. {
  325. DayNumber = 5,
  326. StartWorkingDay = new TimeSpan(08, 00, 00),
  327. EndWorkingTime = new TimeSpan(18, 00, 00)
  328. },
  329. new WorkTime
  330. {
  331. DayNumber = 6,
  332. StartWorkingDay = new TimeSpan(08, 00, 00),
  333. EndWorkingTime = new TimeSpan(18, 00, 00)
  334. }
  335. }
  336. });
  337. context.Doctors.Add(new Doctor
  338. {
  339. FirstName = "Michael",
  340. Lastname = "Robbins",
  341. BirthDay = new DateTime(1975, 10, 1),
  342. Information =
  343. "If you have neck or back pain, this is where you need to go! Dr. Michael Robbins is the best chiropractor in Markham. His knowledge, skills and patience is second to.",
  344. UrlImage = "/doctors/doctor1.jpg",
  345. WorkTimes = new[]
  346. {
  347. new WorkTime
  348. {
  349. DayNumber = 0,
  350. StartWorkingDay = new TimeSpan(08, 00, 00),
  351. EndWorkingTime = new TimeSpan(18, 00, 00)
  352. },
  353. new WorkTime
  354. {
  355. DayNumber = 1,
  356. StartWorkingDay = new TimeSpan(08, 00, 00),
  357. EndWorkingTime = new TimeSpan(18, 00, 00)
  358. },
  359. new WorkTime
  360. {
  361. DayNumber = 2,
  362. StartWorkingDay = new TimeSpan(08, 00, 00),
  363. EndWorkingTime = new TimeSpan(18, 00, 00)
  364. },
  365. new WorkTime
  366. {
  367. DayNumber = 3,
  368. StartWorkingDay = new TimeSpan(08, 00, 00),
  369. EndWorkingTime = new TimeSpan(18, 00, 00)
  370. },
  371. new WorkTime
  372. {
  373. DayNumber = 4,
  374. StartWorkingDay = new TimeSpan(08, 00, 00),
  375. EndWorkingTime = new TimeSpan(18, 00, 00)
  376. },
  377. new WorkTime
  378. {
  379. DayNumber = 5,
  380. StartWorkingDay = new TimeSpan(08, 00, 00),
  381. EndWorkingTime = new TimeSpan(18, 00, 00)
  382. },
  383. new WorkTime
  384. {
  385. DayNumber = 6,
  386. StartWorkingDay = new TimeSpan(08, 00, 00),
  387. EndWorkingTime = new TimeSpan(18, 00, 00)
  388. }
  389. }
  390. });
  391. context.SaveChanges();
  392. }
  393.  
  394. if (!context.Procedures.Any())
  395. {
  396. context.Procedures.Add(new Procedure
  397. {
  398. DurationTime = new TimeSpan(0, 20, 0),
  399. Name = "Endodontic",
  400. Price = 200,
  401. Information =
  402. "Pulpotomy — the opening of the pulp chamber of the tooth to allow an infection to drain; usually a precursor to a root canal"
  403. });
  404. context.Procedures.Add(new Procedure
  405. {
  406. DurationTime = new TimeSpan(0, 30, 0),
  407. Name = "Prosthodontics",
  408. Price = 200,
  409. Information =
  410. "Crown (caps) — artificial covering of a tooth made from a variety of biocompatible materials, including CMC/PMC (ceramic/porcelain metal composite), gold or a tin/aluminum mixture. The underlying tooth must be reshaped to accommodate these fixed restorations"
  411. });
  412. context.Procedures.Add(new Procedure
  413. {
  414. DurationTime = new TimeSpan(0, 20, 0),
  415. Name = "Orthodontic ",
  416. Price = 200,
  417. Information =
  418. "Implants and implant-supported prosthesis — also an orthodontic treatment as it involves bones"
  419. });
  420. context.Procedures.Add(new Procedure
  421. {
  422. DurationTime = new TimeSpan(0, 20, 0),
  423. Name = "Periodontics ",
  424. Price = 200,
  425. Information = "a procedure to sever the fibers around a tooth, preventing it from relapsing"
  426. });
  427. context.SaveChanges();
  428. }
  429.  
  430.  
  431. foreach (var role in roles)
  432. {
  433. var roleStore = new RoleStore<IdentityRole>(context);
  434.  
  435. if (!context.Roles.Any(r => r.Name == role))
  436. await roleStore.CreateAsync(new IdentityRole(role));
  437. }
  438.  
  439. if (!context.Users.Any())
  440. {
  441. var email = "medical@gmail.com";
  442. var user = new ApplicationUser
  443. {
  444. Email = email,
  445. NormalizedEmail = email.ToUpper(),
  446. UserName = email,
  447. NormalizedUserName = email.ToUpper(),
  448. PhoneNumber = "+76781882",
  449. EmailConfirmed = true,
  450. PhoneNumberConfirmed = true,
  451. SecurityStamp = Guid.NewGuid().ToString("D")
  452. };
  453.  
  454. if (!context.Users.Any(u => u.UserName == user.UserName))
  455. {
  456. var password = new PasswordHasher<ApplicationUser>();
  457. var hashed = password.HashPassword(user, "Asdfgh123#");
  458. user.PasswordHash = hashed;
  459. var userStore = new UserStore<ApplicationUser>(context);
  460. await userStore.CreateAsync(user);
  461. await userStore.AddToRoleAsync(user, "ADMINISTRATOR");
  462. // if (result.Succeeded) context.SaveChanges();
  463. }
  464. //
  465. // var userManager = serviceProvider.GetService<UserManager<ApplicationUser>>();
  466. // await userManager.AddToRoleAsync(user, "Administrator");
  467.  
  468.  
  469. // await AssignRoles(serviceProvider, user.Email, roles);
  470. }
  471. }
  472. }
  473. }
  474. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement