Ejemplo n.º 1
0
 private HttpResponseMessage SavePercentage(PercentageGraphData percentage)
 {
     if (!ModelState.IsValid)
     {
         return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
     }
     
     PercentageService.SavePercentage(WebSecurity.CurrentUserId, percentage);
     return new HttpResponseMessage(HttpStatusCode.OK);
 }
Ejemplo n.º 2
0
        public void SavePercentage(int userId, PercentageGraphData percentageData)
        {
            AuthorizationHelper.ValidateLecturerAccess(Context, userId);

            if (Context.DiplomPercentagesGraphs.Any(x => x.Name == percentageData.Name))
            {
                throw new ApplicationException("Этап с таким названием уже есть!");
            }

            DiplomPercentagesGraph percentage;
            if (percentageData.Id.HasValue)
            {
                percentage = Context.DiplomPercentagesGraphs
                              .Include(x => x.DiplomPercentagesGraphToGroups)
                              .Single(x => x.Id == percentageData.Id);
            }
            else
            {
                percentage = new DiplomPercentagesGraph();
                Context.DiplomPercentagesGraphs.Add(percentage);
            }

            //            percentage.DiplomPercentagesGraphToGroups = percentage.DiplomPercentagesGraphToGroups ??
            //                                                        new Collection<DiplomPercentagesGraphToGroup>();

            //            var currentGroups = percentage.DiplomPercentagesGraphToGroups.ToList();
            //            var newGroups = percentageData.SelectedGroupsIds.Select(x => new DiplomPercentagesGraphToGroup
            //            {
            //                GroupId = x,
            //                DiplomPercentagesGraphId = percentage.Id
            //            }).ToList();
            //
            //            var groupsToAdd = newGroups.Except(currentGroups, grp => grp.GroupId).ToList();
            //            var groupsToDelete = currentGroups.Except(newGroups, grp => grp.GroupId).ToList();
            //
            //            groupsToAdd.ForEach(grp => percentage.DiplomPercentagesGraphToGroups.Add(grp));
            //            groupsToDelete.ForEach(grp => Context.DiplomPercentagesGraphToGroup.Remove(grp));
            percentage.LecturerId = userId;
            percentage.Name = percentageData.Name;
            percentage.Percentage = percentageData.Percentage;
            percentage.Date = percentageData.Date;

            Context.SaveChanges();
        }