initial commit
[CPE_learningsite] / CPE / CPE.App / CPE.App.Web / Helpers / ReleaseHelper.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using CPE.App.Web.Elucidat;
6 using CPE.App.Web.Models;
7 using CPE.App.Web.Code;
8
9 namespace CPE.App.Web.Helpers
10 {
11     public class ReleaseHelper
12     {
13         public static bool GetReleaseDescriptionDetails(ReleaseModel release) {
14             try
15             {
16                 var description = release.Description;
17                 string[] fields = description.Split('|');
18                 var releaseCode = release.ReleaseCode;
19
20                 string presenter = fields.Where(p => p.Contains("Presenter")).FirstOrDefault();
21                 presenter = presenter.Substring(presenter.IndexOf('=') + 1);
22                 string fos = fields.Where(f => f.Contains("FOS") || f.Contains("Field of Study")).FirstOrDefault();
23                 fos = fos.Substring(fos.IndexOf('=') + 1);
24                 string credits = fields.Where(c => c.Contains("Credits")).FirstOrDefault();
25                 credits = credits.Substring(credits.IndexOf('=') + 1);
26
27                 if (String.IsNullOrEmpty(presenter) || String.IsNullOrEmpty(fos) || String.IsNullOrEmpty(credits))
28                 {
29                     return false;
30                 }
31                 var course = BaseController.Database.CourseDetails.FirstOrDefault(c => c.ReleaseCode == releaseCode);
32                 if (course == null)
33                 {
34                     course = new CourseDetail
35                     {
36                         ProjectCode = release.Project.ProjectCode,
37                         ReleaseCode = releaseCode,
38                         Presenter = presenter,
39                         Fos = fos,
40                         Credits = credits,
41                         CreatedDate = release.Created,
42                         Name = release.Project.Name
43                     };
44                     BaseController.Database.CourseDetails.InsertOnSubmit(course);
45                 }
46                 else
47                 {
48                     course.Presenter = !String.IsNullOrEmpty(presenter)? presenter : "";
49                     course.Fos = !String.IsNullOrEmpty(fos)? fos : "";
50                     course.Credits = !String.IsNullOrEmpty(credits)? credits: "";
51                     course.Name = release.Project.Name;
52                 }
53                 BaseController.Database.SubmitChanges();
54
55                 return true;
56             }
57             catch (Exception)
58             {
59                 return false;
60             }
61         }
62     }
63 }