// XV: TODO Create a check for organisation accounts
        private IdeationsDao ConvertToDao(Ideation obj)
        {
            //bool Org = obj.User.Role == Role.LOGGEDINORG;
            IdeationsDao dao = new IdeationsDao()
            {
                ModuleId  = obj.Id,
                ExtraInfo = obj.ExtraInfo,
                MediaFile = obj.MediaLink,
            };

            if (obj.User != null)
            {
                dao.UserId = obj.User.Id;
            }

            if (obj.RequiredFields > 0)
            {
                dao.RequiredFields = (byte)obj.RequiredFields;
            }

            if (obj.Event != null)
            {
                dao.EventId  = obj.Event.Id;
                dao.UserIdea = obj.UserIdea;
                //DTO.Organisation = Org;
            }

            return(dao);
        }
        public void Update(Ideation obj)
        {
            IdeationsDao newIdeation   = ConvertToDao(obj);
            IdeationsDao foundIdeation = _ctx.Ideations.FirstOrDefault(dto => dto.ModuleId == newIdeation.ModuleId);

            if (foundIdeation != null)
            {
                foundIdeation.ExtraInfo      = newIdeation.ExtraInfo;
                foundIdeation.MediaFile      = newIdeation.MediaFile;
                foundIdeation.RequiredFields = newIdeation.RequiredFields;
            }

            ModulesDao newModule   = GrabModuleInformationDao(obj);
            ModulesDao foundModule = _ctx.Modules.FirstOrDefault(dto => dto.ModuleId == newModule.ModuleId);

            if (foundModule != null)
            {
                foundModule.OnGoing          = newModule.OnGoing;
                foundModule.Title            = newModule.Title;
                foundModule.LikeCount        = newModule.LikeCount;
                foundModule.FbLikeCount      = newModule.FbLikeCount;
                foundModule.TwitterLikeCount = newModule.TwitterLikeCount;
                foundModule.ShareCount       = newModule.ShareCount;
                foundModule.RetweetCount     = newModule.RetweetCount;
                foundModule.Tags             = newModule.Tags;
            }

            if (newModule.PhaseId != foundModule.PhaseId)
            {
                foundModule.PhaseId = newModule.PhaseId;
            }

            _ctx.SaveChanges();
        }
        public Ideation Read(int id, bool details)
        {
            IdeationsDao ideationDao = details ? _ctx.Ideations.AsNoTracking().First(m => m.ModuleId == id) : _ctx.Ideations.First(m => m.ModuleId == id);

            ExtensionMethods.CheckForNotFound(ideationDao, "Ideation", id);

            return(ConvertToDomain(ideationDao));
        }
        public void Delete(int id)
        {
            ModulesDao toDeleteModule = _ctx.Modules.First(r => r.ModuleId == id);

            _ctx.Modules.Remove(toDeleteModule);
            IdeationsDao toDelete = _ctx.Ideations.First(r => r.ModuleId == id);

            _ctx.Ideations.Remove(toDelete);
            _ctx.SaveChanges();
        }
 private Ideation ConvertToDomain(IdeationsDao dao)
 {
     return(new Ideation
     {
         Id = dao.ModuleId,
         User = new UimvcUser {
             Id = dao.UserId
         },
         UserIdea = dao.UserIdea,
         Event = new Event {
             Id = dao.EventId
         },
         MediaLink = dao.MediaFile,
         ExtraInfo = dao.ExtraInfo,
         RequiredFields = dao.RequiredFields
     });
 }
        public Ideation Create(Ideation obj)
        {
            IEnumerable <Ideation> ideations = ReadAll(obj.Project.Id);

            foreach (Ideation i in ideations)
            {
                if (obj.ParentPhase.Id == i.ParentPhase.Id)
                {
                    throw new DuplicateNameException("Ideation(ID=" + obj.Id + ") heeft dezelfde parentPhase als Ideation(ID=" + i.Id + "). De phaseID is "
                                                     + obj.ParentPhase.Id + ".");
                }
            }

            obj.Id = FindNextAvailableIdeationId();
            ModulesDao   newModule   = GrabModuleInformationDao(obj);
            IdeationsDao newIdeation = ConvertToDao(obj);

            _ctx.Modules.Add(newModule);
            _ctx.Ideations.Add(newIdeation);
            _ctx.SaveChanges();

            return(obj);
        }