コード例 #1
0
ファイル: VoteController.cs プロジェクト: ka2ya/cityOfIdeas
        private Activity CreateActivity(IotLink link)
        {
            ActivityType activityType;
            Platform     platform;

            if (link.Form == null)
            {
                activityType = ActivityType.IdeationVote;
                platform     = link.IdeationReply.Ideation.Project.Platform;
            }
            else
            {
                activityType = ActivityType.FormVote;
                platform     = link.Form.Project.Platform;
            }

            var activity = new Activity()
            {
                ActivityTime = DateTime.Now,
                ActivityType = activityType,
                User         = null,
                Platform     = platform
            };

            return(activity);
        }
コード例 #2
0
        public IActionResult GetAllStatementForms(int id, [FromServices] IIoTManager ioTManager)
        {
            List <Form> forms = _formManager.GetAllStatementForms(id).ToList();

            List <FormViewModel> formViewModels = new List <FormViewModel>();

            foreach (Form form in forms)
            {
                IotLink       iotLink       = ioTManager.GetIoTLinkByForm(form);
                FormViewModel formViewModel = new FormViewModel()
                {
                    Title     = form.Title,
                    FormId    = form.FormId,
                    Questions = new List <FormQuestionViewModel>(),
                    IotLink   = iotLink
                };

                FormQuestionViewModel question = new FormQuestionViewModel()
                {
                    Question = form.Questions[0].QuestionString
                };

                formViewModel.Questions.Add(question);
                formViewModels.Add(formViewModel);
            }

            return(Ok(formViewModels));
        }
コード例 #3
0
ファイル: IoTController.cs プロジェクト: ka2ya/cityOfIdeas
        public IActionResult CreateLink(IoTDTO iot, [FromServices] IFormManager formManager, [FromServices] IIdeationManager ideationManager, [FromServices] IIoTManager ioTManager, [FromServices]  UnitOfWorkManager unitOfWorkManager)
        {
            IotLink  link     = null;
            Location location = new Location()
            {
                Longitude = iot.Location.Longitude,
                Latitude  = iot.Location.Latitude,
                ZoomLevel = iot.Location.ZoomLevel
            };


            if (iot.IsForm)
            {
                Form form = formManager.GetForm(iot.FormId);
                if (form == null)
                {
                    return(NotFound());
                }
                link = ioTManager.CreateIotLink(form, null, form.Project, location);
            }

            else
            {
                Ideation      ideation = ideationManager.GetIdeationWithReplies(iot.IdeationId);
                IdeationReply reply    = ideationManager.GetIdeationReply(ideation.Replies[0].IdeationReplyId);
                if (reply == null)
                {
                    return(NotFound());
                }
                link = ioTManager.CreateIotLink(null, reply, ideation.Project, location);
            }
            unitOfWorkManager.Save();

            return(Created("", new { id = link.IotLinkId }));
        }
コード例 #4
0
        public void DeleteLink(int id)
        {
            IotLink link = _ctx.IotLinks.Find(id);

            _ctx.IotLinks.Remove(link);
            _ctx.SaveChanges();
        }
コード例 #5
0
        public IotLink CreateIotLink(Form form, IdeationReply ideationReply, Project project, Location location)
        {
            IotLink iotLink = new IotLink()
            {
                Form          = form,
                IdeationReply = ideationReply,
                Project       = project,
                Location      = location,
            };

            return(_ioTRepository.CreateIotLink(iotLink));
        }
コード例 #6
0
        public IActionResult GetAllAdminIdeations(int id, [FromServices] IIoTManager ioTManager)
        {
            List <Ideation> ideations = _ideationManager.GetAllAdminIdeations(id).ToList();

            List <IdeationViewModel> ideationViewModels = new List <IdeationViewModel>();


            foreach (var ideation in ideations)
            {
                bool hasReplies = ideation.Replies.Any();
                if (!hasReplies)
                {
                    continue;
                }
                IoTDTO iotLink = null;
                if (hasReplies)
                {
                    IotLink link = null;
                    link = ioTManager.GetIoTLinkByIdeationReply(ideation.Replies[0]);
                    if (link != null)
                    {
                        iotLink = new IoTDTO()
                        {
                            IotLinkId  = link.IotLinkId,
                            IsForm     = false,
                            IdeationId = ideation.Replies[0].IdeationReplyId,
                            Location   = new LocationDTO()
                            {
                                Longitude = link.Location.Longitude,
                                Latitude  = link.Location.Latitude,
                                ZoomLevel = link.Location.ZoomLevel
                            }
                        };
                    }
                }
                IdeationViewModel vm = new IdeationViewModel()
                {
                    CentralQuestion = ideation.CentralQuestion,
                    Description     = ideation.Description,
                    IdeationId      = ideation.IdeationId,
                    HasReplies      = hasReplies,
                    IotLink         = iotLink
                };
                ideationViewModels.Add(vm);
            }

            return(Ok(ideationViewModels));
        }
コード例 #7
0
ファイル: IoTController.cs プロジェクト: ka2ya/cityOfIdeas
        public IActionResult EditLink(IoTDTO iot, [FromServices] IFormManager formManager, [FromServices] IIdeationManager ideationManager, [FromServices] IIoTManager ioTManager, [FromServices]  UnitOfWorkManager unitOfWorkManager)
        {
            IotLink link = ioTManager.GetIoTLink(iot.IotLinkId);

            Location location = new Location()
            {
                Longitude = iot.Location.Longitude,
                Latitude  = iot.Location.Latitude,
                ZoomLevel = iot.Location.ZoomLevel
            };

            link.Location = location;

            ioTManager.UpdateIotLink(link);
            unitOfWorkManager.Save();

            return(Ok());
        }
コード例 #8
0
ファイル: VoteController.cs プロジェクト: ka2ya/cityOfIdeas
        private Tuple <IotLinkType, int> UpdateIot(IotLink link)
        {
            IotLinkType iotLinkType;
            int         replyId;

            if (link.Form == null)
            {
                iotLinkType = IotLinkType.Ideation;
                replyId     = link.IdeationReply.IdeationReplyId;
            }
            else
            {
                iotLinkType = IotLinkType.Form;
                replyId     = link.Form.FormId;
            }

            switch (iotLinkType)
            {
            case IotLinkType.Ideation:
                _ideationManager.UpdateReply(link.IdeationReply);
                break;

            case IotLinkType.Form:
                _formManager.UpdateForm(link.Form);
                break;
            }

            try
            {
                _unitOfWorkManager.FixUnchangedEntries(); // only used one time where 2 dbcontexts were unavoidable -> UI.MVC/scheduler
                _unitOfWorkManager.Save();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return(new Tuple <IotLinkType, int>(iotLinkType, replyId));
        }
コード例 #9
0
ファイル: VoteController.cs プロジェクト: ka2ya/cityOfIdeas
        public Tuple <IotLinkType, int, Activity> VoteDown(int iotId, User user = null)
        {
            IotLink link = _ioTManager.GetIoTLink(iotId);

            link.VoteDown(user);

            Activity activity = null;

            activity = CreateActivity(link);
            if (link.Form == null)
            {
                activity.IdeationReply = link.IdeationReply;
            }
            else
            {
                activity.Form = link.Form;
            }

            var linkTypeAndId = UpdateIot(link);

            return(new Tuple <IotLinkType, int, Activity>(linkTypeAndId.Item1, linkTypeAndId.Item2, activity));
        }
コード例 #10
0
 public IotLink UpdateIotLink(IotLink iotLink)
 {
     _ctx.IotLinks.Update(iotLink);
     _ctx.SaveChanges();
     return(iotLink);
 }
コード例 #11
0
 public IotLink CreateIotLink(IotLink iotLink)
 {
     _ctx.IotLinks.Add(iotLink);
     _ctx.SaveChanges();
     return(iotLink);
 }
コード例 #12
0
 public IotLink UpdateIotLink(IotLink iotLink)
 {
     return(_ioTRepository.UpdateIotLink(iotLink));
 }