コード例 #1
0
        public async Task <IHttpActionResult> Update([FromBody] GradeDTO grade)
        {
            var response = new OverviewResponse <GradeOverview>();

            try
            {
                Grade newGrade = _mapper.Map <GradeDTO, Grade>(grade);

                var result = _gradeService.Update(newGrade);
                if (!result)
                {
                    response.IsSuccess = false;
                    response.Errors.Add("Grade was not saved");
                }
                var overviews = GetGradeOverview();
                response.IsSuccess = !response.Errors.Any();
                response.Overview  = overviews;
            }
            catch (Exception ex)
            {
                response.IsSuccess = false;
                response.Errors.Add(ex.Message);
                response.Errors.Add("-----------------------------------");
                response.Errors.Add(ex.InnerException.Message);
                var overviews = GetGradeOverview();
                response.Overview = overviews;
                return(Ok(response));
            }

            //Call overview
            var hubContext = GlobalHost.ConnectionManager.GetHubContext <ClientHub>();

            hubContext.Clients.All.reloadGrade(response);
            return(Ok(response));
        }
コード例 #2
0
        public int Step2(int[] itemid, int partid, out OverviewResponse res)
        {
            res = null;

            if (itemid.Any(CheckVendor.NotValidItemId) || !ApiVendor.HasToken())
            {
                return(02_0008);
            }

            var or = new OverviewRequest();

            or.QueryItems = itemid;
            or.ReportTime = DateTime.Now;

            var result = ApiCall.DataOverview.Call(partid.ToString(), new MilvanethProtocol {
                Context = null, Data = or
            });

            if (!(result.Data is OverviewResponse pr))
            {
                return(02_0007);
            }

            if (CheckVendor.NotValidResponse(pr))
            {
                return(pr.Message);
            }

            res = pr;
            return(00_0000);
        }
コード例 #3
0
        public async Task <IHttpActionResult> Update([FromBody] StudentDTO Student)
        {
            var response = new OverviewResponse <StudentOverview>();

            try
            {
                Student newStudent = _mapper.Map <StudentDTO, Student>(Student);
                var     result     = _studentService.Update(newStudent);
                if (!result)
                {
                    response.IsSuccess = false;
                    response.Errors.Add("Student was not saved");
                }
                var overviews = GetStudentOverview();
                response.IsSuccess = !response.Errors.Any();
                response.Overview  = overviews;
            }
            catch (Exception ex)
            {
                response.IsSuccess = false;
                response.Errors.Add(ex.Message);
                response.Errors.Add("-----------------------------------");
                response.Errors.Add(ex.InnerException.Message);
                var overviews = GetStudentOverview();
                response.Overview = overviews;
                return(Ok(response));
            }

            //Call overview
            var hubContext = GlobalHost.ConnectionManager.GetHubContext <ClientHub>();

            hubContext.Clients.All.reloadStudent(response);
            return(Ok(response));
        }
コード例 #4
0
        public async Task <IHttpActionResult> Delete([FromUri] int StudentId)
        {
            var response = new OverviewResponse <StudentOverview>();

            try
            {
                var result = _studentService.Delete(StudentId);
                if (!result)
                {
                    response.IsSuccess = false;
                    response.Errors.Add("Student was not removed");
                }

                var overviews = GetStudentOverview();
                response.IsSuccess = !response.Errors.Any();
                response.Overview  = overviews;
            }
            catch (Exception ex)
            {
                response.IsSuccess = false;
                response.Errors.Add(ex.Message);
                response.Errors.Add("-----------------------------------");
                response.Errors.Add(ex.InnerException.Message);
                var overviews = GetStudentOverview();
                response.Overview = overviews;
                return(Ok(response));
            }

            //Call overview
            var hubContext = GlobalHost.ConnectionManager.GetHubContext <ClientHub>();

            hubContext.Clients.All.reloadStudent(response);
            return(Ok(response));
        }
コード例 #5
0
        public async Task <IHttpActionResult> GetOverview()
        {
            var response  = new OverviewResponse <GradeOverview>();
            var overviews = GetGradeOverview();

            response.IsSuccess = !response.Errors.Any();
            response.Overview  = overviews;
            return(Ok(response));
        }
コード例 #6
0
        public async Task <IActionResult> GetAsync()
        {
            var activeDates = this.dateCalculator.GetActiveDates();

            var requests = await this.requestRepository.GetRequests(activeDates.First(), activeDates.Last());

            var users = await this.userRepository.GetUsers();

            var data = activeDates.ToDictionary(
                d => d,
                d => CreateDailyData(d, this.GetCognitoUserId(), requests, users));

            var calendar = CreateCalendar(data);

            var response = new OverviewResponse(calendar);

            return(this.Ok(response));
        }
コード例 #7
0
        public async Task <IHttpActionResult> Delete([FromUri] int teacherId)
        {
            var response = new OverviewResponse <TeacherOverview>();

            try
            {
                var hasAssociation = _subjectService.GetSubjectsList(0, teacherId, 0).Any();

                if (hasAssociation)
                {
                    response.IsSuccess = false;
                    response.Errors.Add("Cannot remove teacher associated with subjects.");
                    return(Ok(response));
                }

                var result = _teacherService.Delete(teacherId);
                if (!result)
                {
                    response.IsSuccess = false;
                    response.Errors.Add("Teacher was not removed");
                    return(Ok(response));
                }

                var overviews = GetTeacherOverview();
                response.IsSuccess = !response.Errors.Any();
                response.Overview  = overviews;
            }
            catch (Exception ex)
            {
                response.IsSuccess = false;
                response.Errors.Add(ex.Message);
                response.Errors.Add("-----------------------------------");
                response.Errors.Add(ex.InnerException.Message);
                var overviews = GetTeacherOverview();
                response.Overview = overviews;
                return(Ok(response));
            }

            //Call overview
            var hubContext = GlobalHost.ConnectionManager.GetHubContext <ClientHub>();

            hubContext.Clients.All.reloadTeacher(response);
            return(Ok(response));
        }
コード例 #8
0
        public async Task <IHttpActionResult> Update([FromBody] CourseDTO course)
        {
            var response = new OverviewResponse <CourseOverview>();

            try
            {
                Course newCourse = _mapper.Map <CourseDTO, Course>(course);
                var    result    = _courseService.Update(newCourse);
                if (!result)
                {
                    response.IsSuccess = false;
                    response.Errors.Add("Course was not saved");
                    response.Overview = GetCourseOverview();
                    return(Ok(response));
                }
                var associated = _courseService.AssociateSubjects(newCourse.Id, course.SelectedSubjects);
                if (!associated)
                {
                    response.IsSuccess = false;
                    response.Errors.Add("Associating course to subjects did not went well");
                }

                var overviews = GetCourseOverview();
                response.IsSuccess = !response.Errors.Any();
                response.Overview  = overviews;
            }
            catch (Exception ex)
            {
                response.IsSuccess = false;
                response.Errors.Add(ex.Message);
                response.Errors.Add("-----------------------------------");
                response.Errors.Add(ex.InnerException.Message);
                var overviews = GetCourseOverview();
                response.Overview = overviews;
                return(Ok(response));
            }

            //Call overview
            var hubContext = GlobalHost.ConnectionManager.GetHubContext <ClientHub>();

            hubContext.Clients.All.reloadCourse(response);
            return(Ok(response));
        }
コード例 #9
0
        public async Task <IHttpActionResult> Add([FromBody] SubjectDTO subject)
        {
            var response = new OverviewResponse <SubjectOverview>();

            try
            {
                Subject newsubject = _mapper.Map <SubjectDTO, Subject>(subject);
                newsubject.TeacherId = subject.SelectedTeacher;

                var result = _subjectService.Add(newsubject);
                if (result == null)
                {
                    response.IsSuccess = false;
                    response.Errors.Add("Already exists!");
                    return(Ok(response));
                }

                var overviews = GetSubjectOverview();
                response.IsSuccess = !response.Errors.Any();
                response.Overview  = overviews;
            }
            catch (Exception ex)
            {
                response.IsSuccess = false;
                response.Errors.Add(ex.Message);
                response.Errors.Add("-----------------------------------");
                response.Errors.Add(ex.InnerException.Message);
                var overviews = GetSubjectOverview();
                response.Overview = overviews;
                return(Ok(response));
            }

            //Call overview
            var hubContext = GlobalHost.ConnectionManager.GetHubContext <ClientHub>();

            hubContext.Clients.All.reloadSubject(response);
            return(Ok(response));
        }
コード例 #10
0
        public async Task <IHttpActionResult> Update([FromBody] TeacherDTO subject)
        {
            var response = new OverviewResponse <TeacherOverview>();

            try
            {
                Teacher newTeacher = _mapper.Map <TeacherDTO, Teacher>(subject);
                var     result     = _teacherService.Update(newTeacher);
                if (!result)
                {
                    response.IsSuccess = false;
                    response.Errors.Add("Teacher was not saved");
                    return(Ok(response));
                }

                var overviews = GetTeacherOverview();
                response.IsSuccess = !response.Errors.Any();
                response.Overview  = overviews;
            }
            catch (Exception ex)
            {
                response.IsSuccess = false;
                response.Errors.Add(ex.Message);
                response.Errors.Add("-----------------------------------");
                response.Errors.Add(ex.InnerException.Message);
                var overviews = GetTeacherOverview();
                response.Overview = overviews;
                return(Ok(response));
            }

            //Call overview
            var hubContext = GlobalHost.ConnectionManager.GetHubContext <ClientHub>();

            hubContext.Clients.All.reloadTeacher(response);
            return(Ok(response));
        }
コード例 #11
0
        public object Any(Overview request)
        {
            var key = ContentCache.OverviewKey(clear: request.Reload);

            return(base.Request.ToOptimizedResultUsingCache(ContentCache.Client, key, () =>
            {
                var topTechByCategory = Db.Select <TechnologyInfo>(
                    @"select t.tier, t.slug as Slug, t.name, t.logo_url, COUNT(*) as StacksCount 
                        from technology_choice tc
	                     inner join
	                     technology t on (tc.technology_id = t.id)
                        group by t.tier, t.slug, t.name, t.logo_url
                        having COUNT(*) > 2
                        order by 4 desc");

                var map = new Dictionary <TechnologyTier, List <TechnologyInfo> >();
                foreach (var tech in topTechByCategory)
                {
                    List <TechnologyInfo> techs;
                    if (!map.TryGetValue(tech.Tier, out techs))
                    {
                        map[tech.Tier] = techs = new List <TechnologyInfo>();
                    }

                    techs.Add(tech);
                }

                foreach (var tier in map.Keys)
                {
                    var list = map[tier];
                    list.Sort((x, y) => y.StacksCount - x.StacksCount);
                    if (list.Count > 3)
                    {
                        list.RemoveRange(3, list.Count - 3);
                    }
                }

                var response = new OverviewResponse
                {
                    Created = DateTime.UtcNow,

                    LatestTechStacks = Db.GetTechstackDetails(Db.From <TechnologyStack>().OrderByDescending(x => x.LastModified).Limit(20)),

                    TopUsers = Db.Select <UserInfo>(
                        @"select u.user_name as UserName, u.default_profile_url as AvatarUrl, COUNT(*) as StacksCount
                          from technology_stack ts
	                          left join
	                          user_favorite_technology_stack uf on (ts.id = uf.technology_stack_id)
	                          left join
	                          custom_user_auth u on (u.id = ts.owner_id::integer)
                          group by u.user_name, u.default_profile_url
                          having count(*) > 0
                          order by StacksCount desc
                          limit 20"),

                    TopTechnologies = topTechByCategory
                                      .OrderByDescending(x => x.StacksCount)
                                      .Take(20)
                                      .ToList(),

                    TopTechnologiesByTier = map,
                };

                //Lighten payload
                response.LatestTechStacks.Each(x => {
                    x.Details = x.DetailsHtml = null;
                    x.TechnologyChoices.Each(y => {
                        y.Description = null;
                    });
                });

                //Put TechStacks entry first to provide a first good experience
                var techStacksApp = response.LatestTechStacks.FirstOrDefault(x => x.Id == TechStacksAppId);
                if (techStacksApp != null)
                {
                    response.LatestTechStacks.RemoveAll(x => x.Id == TechStacksAppId);
                    response.LatestTechStacks.Insert(0, techStacksApp);
                }

                return response;
            }));
        }
コード例 #12
0
        public object Any(Overview request)
        {
            if (request.Reload)
            {
                Cache.FlushAll();
            }

            var topTechByCategory = GetTopTechByCategory();

            var map = new Dictionary <string, List <TechnologyInfo> >();

            foreach (var tech in topTechByCategory)
            {
                List <TechnologyInfo> techs = null;
                var key = Enum.GetName(typeof(TechnologyTier), tech.Tier);
                if (key != null && !map.TryGetValue(key, out techs))
                {
                    map[key] = techs = new List <TechnologyInfo>();
                }

                techs?.Add(tech);
            }

            foreach (var tier in map.Keys)
            {
                var list = map[tier];
                list.Sort((x, y) => y.StacksCount - x.StacksCount);
                if (list.Count > 5)
                {
                    list.RemoveRange(5, list.Count - 5);
                }
            }

            var response = new OverviewResponse
            {
                Created = DateTime.UtcNow,

                LatestTechStacks = Db.GetTechstackDetails(Db.From <TechnologyStack>().OrderByDescending(x => x.LastModified).Limit(20)),

                TopUsers = Db.Select <UserInfo>(
                    @"select u.user_name as UserName, u.default_profile_url as AvatarUrl, COUNT(*) as StacksCount
                          from technology_stack ts
	                          left join
	                          user_favorite_technology_stack uf on (ts.id = uf.technology_stack_id)
	                          left join
	                          custom_user_auth u on (u.id = ts.owner_id::integer)
                          group by u.user_name, u.default_profile_url
                          having count(*) > 0
                          order by StacksCount desc
                          limit 20"),

                TopTechnologies = topTechByCategory
                                  .OrderByDescending(x => x.StacksCount)
                                  .Take(50)
                                  .ToList(),

                PopularTechStacks = Db.Select(
                    Db.From <TechnologyStack>()
                    .Join <PageStats>((s, p) => s.Id == p.RefId && p.RefType == "stack")
                    .OrderByDescending <PageStats>(p => p.ViewCount)
                    .Limit(12)),

                TopTechnologiesByTier = map,
            };

            //Lighten payload
            response.LatestTechStacks.Each(x => {
                x.Details = x.DetailsHtml = null;
                x.TechnologyChoices.Each(y => {
                    y.Description = null;
                });
            });

            //Put TechStacks entry first to provide a first good experience
            var techStacksApp = response.LatestTechStacks.FirstOrDefault(x => x.Id == TechStacksAppId);

            if (techStacksApp != null)
            {
                response.LatestTechStacks.RemoveAll(x => x.Id == TechStacksAppId);
                response.LatestTechStacks.Insert(0, techStacksApp);
            }

            return(response);
        }
コード例 #13
0
        public void OnCommandLineEnter(object sender, ExecutedRoutedEventArgs e)
        {
            br.UiActiveTab = 0;
            MainFrame.Navigate(ip);
            var dic = DictionaryManagementService.SearchItem(br.UiSearchLine);

            br.OverlayOverviewData =
                dic.Select(x => new OverviewData {
                ItemId = x.Key, UpdateTime = DateTime.MinValue
            }).ToList();

            Task.Run(() =>
            {
                RETRY:

                int ret = 0;

                try
                {
                    var local            = new ExchangeProcedure();
                    var partCnt          = 0;
                    OverviewResponse res = null;

                    do
                    {
                        try
                        {
                            ret = local.Step2(dic.Keys.ToArray(), partCnt++, out res);
                        }
                        catch (HttpRequestException exception)
                        {
                            ret = 02_0000 + (int)exception.Data["StatusCode"];
                        }


                        if (!CheckVendor.NotValidResponseCode(ret))
                        {
                            var overviewDic = br.OverlayOverviewData.ToDictionary(x => x.ItemId, x => x);

                            foreach (var item in res.Results)
                            {
                                overviewDic[item.ItemId] =
                                    OverviewData.FromResultItem(overviewDic[item.ItemId], item);
                            }

                            br.OverlayOverviewData = overviewDic.Values.ToList();
                        }
                    } while (!CheckVendor.NotValidResponseCode(ret) && !res.FinalPart);

                    if (ret % 10000 == 0511 && ApiVendor.ValidateAndRenewToken())
                    {
                        goto RETRY;
                    }
                }
                catch (HttpRequestException ex)
                {
                    ret = 02_0000 + (int)(ex.Data["StatusCode"]);
                    if (ret == 02_0511 && ApiVendor.ValidateAndRenewToken())
                    {
                        goto RETRY;
                    }
                }
                catch (Exception)
                {
                    ret = 02_0000;
                }

                if (CheckVendor.NotValidResponseCode(ret))
                {
                    LoggingManagementService.WriteLine(
                        $"Api Error: {MessageVendor.FormatError(ret)} on searching {br.UiSearchLine}", "ApiSys");
                }
            });
        }