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