public ActionResult Create(CreatePetitionViewModel petition)
        {
            Petition newPetition = new Petition()
            {
                CampusID    = petition.CampusID,
                CategoryID  = petition.CategoryID,
                Title       = petition.Title,
                Description = petition.Description,
                DateCreated = DateTime.Now,
                Solved      = false,
                UserId      = User.Identity.GetUserId()
            };

            if (ModelState.IsValid)
            {
                db.Petitions.Add(newPetition);
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }

            var campi = db.Campus.OrderBy(m => m.Description);

            ViewBag.CampusID   = new SelectList(campi, "CampusID", "Description", petition.CampusID);
            ViewBag.CategoryID = new SelectList(db.Categories, "CategoryID", "Description", petition.CategoryID);
            return(View(petition));
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }

            Petition petition = db.Petitions.Find(id);

            EditPetitionViewModel editPetition = new EditPetitionViewModel
            {
                PetitionID  = petition.PetitionID,
                CategoryID  = petition.CategoryID,
                CampusID    = petition.CampusID,
                Title       = petition.Title,
                Description = petition.Description
            };

            if (petition == null)
            {
                return(RedirectToAction("Index"));
            }

            ViewBag.CampusID   = new SelectList(db.Campus, "CampusID", "Description", petition.CampusID);
            ViewBag.CategoryID = new SelectList(db.Categories, "CategoryID", "Description", petition.CategoryID);

            return(View(editPetition));
        }
示例#3
0
        public void SendPetitionQuery(ObjectGuid petitionGuid)
        {
            QueryPetitionResponse responsePacket = new QueryPetitionResponse();

            responsePacket.PetitionID = (uint)petitionGuid.GetCounter();  // PetitionID (in Trinity always same as GUID_LOPART(petition guid))

            Petition petition = Global.PetitionMgr.GetPetition(petitionGuid);

            if (petition == null)
            {
                responsePacket.Allow = false;
                SendPacket(responsePacket);
                Log.outDebug(LogFilter.Network, $"CMSG_PETITION_Select failed for petition ({petitionGuid})");
                return;
            }

            uint reqSignatures = WorldConfig.GetUIntValue(WorldCfg.MinPetitionSigns);

            PetitionInfo petitionInfo = new PetitionInfo();

            petitionInfo.PetitionID    = (int)petitionGuid.GetCounter();
            petitionInfo.Petitioner    = petition.ownerGuid;
            petitionInfo.MinSignatures = reqSignatures;
            petitionInfo.MaxSignatures = reqSignatures;
            petitionInfo.Title         = petition.petitionName;

            responsePacket.Allow = true;
            responsePacket.Info  = petitionInfo;

            SendPacket(responsePacket);
        }
示例#4
0
        public ActionResult EditPetition(_EditPetitionViewModel model)
        {
            if (!Request.IsAuthenticated)
            {
                throw new AuthenticationException();
            }

            if (ModelState.IsValid)
            {
                PetitionContainer data = new PetitionContainer
                {
                    GroupId   = model.GroupId,
                    Id        = model.Id,
                    IsPrivate = model.IsPrivate,
                    Tags      = model.TagTitles,
                    Text      = model.Text,
                    Title     = model.Title
                };

                Petition petition = VotingService.EditPetition(data, UserContext.Current.Id);

                return(RedirectToAction("petition", petition.Controller, new { id = petition.Id }));
            }

            if (model.GroupId != null)
            {
                View("../group/editpetition", model);
            }

            return(View("../user/editpetition", model));
        }
        public UserDrafts_PetitionViewModel(Petition petition)
        {
            if (petition != null)
            {
                Id       = petition.Id;
                AuthorId = petition.AuthorId;
                GroupId  = petition.GroupId;

                if (petition.GroupId.HasValue)
                {
                    GroupName = petition.Group.Name;
                    GroupUrl  = petition.Group.Url;

                    if (petition.IsPrivate)
                    {
                        Privacy = "только для членов группы";
                    }
                }

                Controller   = petition.Controller;
                CreationDate = petition.CreationDate;
                Title        = petition.Title;
                Tags         = petition.Tags.Select(x => new TagViewModel(x)).ToList();

                Summary = TextHelper.CleanTags(petition.Text);
                if (Summary.Length > ConstHelper.MiniSummaryLength)
                {
                    Summary = Summary.Substring(0, ConstHelper.MiniSummaryLength) + "…";
                }
            }
        }
        protected void BtnSend_Click(object sender, EventArgs e) //Ingresa una petición, solo si esta se encuentra disponible.
        {
            Petition petition = Indexation();

            if (!petition.IsThereAPetition())
            {
                petition.Create();

                /*switch(petition.Facilty)
                 * {
                 *  case 1:
                 *      Response.Redirect("Horario Futbolito.aspx");
                 *      break;
                 *  case 2:
                 *      Response.Redirect("Horario Gimnasio.aspx");
                 *      break;
                 *  case 3:
                 *      Response.Redirect("Horario Multicancha.aspx");
                 *      break;
                 *  case 4:
                 *      Response.Redirect("Horario Otros.aspx");
                 *      break;
                 * }*/
                lblMessage.Text = "Solicitud ingresada con éxito";
            }
            else
            {
                lblMessage.Text = "Verifique que exista disponibilidad horaria";
            }
        }
示例#7
0
        public _PetitionViewModel(Petition petition, Guid?userId)
        {
            if (petition != null)
            {
                Id         = petition.Id;
                Title      = petition.Title;
                Text       = petition.Text;
                IsFinished = petition.IsFinished;
                IsPrivate  = petition.IsPrivate;
                StartDate  = petition.PublishDate;
                State      = (ContentState)petition.State;

                GroupId = petition.GroupId;

                Coauthors    = petition.Coauthors.Where(c => c.IsAccepted.HasValue && c.IsAccepted.Value).Select(c => new _Petition_CoauthorViewModel(c)).ToList();
                SignersCount = DeclinationService.OfNumber(petition.Signers.Count, "человек", "человека", "человек");

                if (userId.HasValue)
                {
                    IsUserSigned = petition.Signers.Count(x => x.Id == userId.Value) != 0;
                }

                if (petition.PublishDate.HasValue && petition.Duration.HasValue)
                {
                    EndDate = petition.PublishDate.Value.AddDays(petition.Duration.Value);
                }

                if (petition.IsPrivate && petition.GroupId.HasValue)
                {
                    Privacy = "только для членов группы";
                }
            }
        }
示例#8
0
        public async void DeletePetitionWorks()
        {
            DbContextOptions <CCMSBuildDbContext> options =
                new DbContextOptionsBuilder <CCMSBuildDbContext>
                    ().UseInMemoryDatabase("DeletePetition").Options;

            using (CCMSBuildDbContext context = new CCMSBuildDbContext(options))
            {
                // arrange
                Petition petition = new Petition();
                petition.ID           = 1;
                petition.Name         = "Jason";
                petition.Orginization = "stuff";

                // Act
                context.Petition.Add(petition);

                context.SaveChanges();

                var toDelete = await context.Petition.FirstOrDefaultAsync(p => p.ID == petition.ID);

                context.Petition.Remove(toDelete);

                context.SaveChanges();

                var deleted = await context.Petition.FirstOrDefaultAsync(p => p.ID == petition.ID);

                // Assert
                Assert.Null(deleted);
            }
        }
示例#9
0
        public void SetPetitionOnProcess(int petitionID)
        {
            Petition petition = _context.Petitions.Find(petitionID);

            petition.Statu = (int)Statu.İşlemeAlındı;
            _context.SaveChanges();
        }
示例#10
0
        public async void EditPetitionWorks()
        {
            DbContextOptions <CCMSBuildDbContext> options =
                new DbContextOptionsBuilder <CCMSBuildDbContext>
                    ().UseInMemoryDatabase("EditPetition").Options;

            using (CCMSBuildDbContext context = new CCMSBuildDbContext(options))
            {
                // arrange
                Petition petition = new Petition();
                petition.ID           = 1;
                petition.Name         = "Jason";
                petition.Orginization = "stuff";

                // Act
                context.Petition.Add(petition);

                context.SaveChanges();

                var created = await context.Petition.FirstOrDefaultAsync(p => p.ID == petition.ID);

                created.Name = "Jen";

                context.SaveChanges();

                // Assert
                Assert.Equal("Jen", created.Name);
            }
        }
示例#11
0
        public void SetPetitionToDone(int petitionID)
        {
            Petition petition = _context.Petitions.Find(petitionID);

            petition.Statu = (int)Statu.Çözüldü;
            _context.SaveChanges();
        }
示例#12
0
        public static void SendPetitionCreated(Petition petition, string email)
        {
            try
            {
                MailMessage mail   = new MailMessage();
                SmtpClient  client = new SmtpClient();

                client.UseDefaultCredentials = false;
                client.Credentials           = new NetworkCredential("*****@*****.**", "03123897461eren");
                client.Port      = 587;
                client.Host      = "smtp.gmail.com";
                client.EnableSsl = true;



                mail.From = new MailAddress("*****@*****.**");
                mail.To.Add(email);
                mail.Subject = "Dilekçeniz Başarıyla Oluşturuldu";
                mail.Body    = "<h2>Dilekçeniz Oluşturuldu. Dilekçe Bilgilerinizi Aşşağıdan Öğrenebilirsiniz.</h2><hr/>";
                mail.Body   += $"<h4>Dilekçe Numarası : <b>{petition.PetitionID}</b></h4>";
                mail.Body   += $"<h4>Dilekçe Konusu : <b>{petition.Summary}</b></h4>";
                mail.Body   += $"<h4>Dilekçe Oluşturulma Tarihi : <b>{petition.Date}</b></h4>";


                mail.IsBodyHtml = true;


                client.Send(mail);
            }
            catch
            {
                throw new ApplicationException("Mail Gönderilemedi.");
            }
        }
示例#13
0
        public ActionResult createPost(Petition model)
        {
            User user = TheApp.currentUser;

            if (user == null)
            {
                return(Redirect("/Home/Login"));
            }
            //todo: 判断权限,只有市县级信访局管理员才能填写日报
            MyJsonResult result = new MyJsonResult();

            if (model == null)
            {
                result.message = "请填写日报记录";
                return(Json(result));
            }
            model.PetitionDate   = DateTime.Now.Date;
            model.ProblemAddress = user.CountyId;
            PetitionDao dao = new PetitionDao();

            dao.addOrUpdate(model);
            dao.Dispose();
            result.success = true;
            return(Json(result));
        }
示例#14
0
        /// <summary>
        /// 청원을 추가하는 메서드
        /// </summary>
        /// <param name="petition">Suggestion class in Models</param>
        /// <see cref="Petition"/>
        public static int UploadPetition(Petition petition)
        {
            // Connect to DB
            using (var conn = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["COUNCILDB"].ConnectionString)) {
                conn.Open();

                // Command Text - Create
                string commandText = "INSERT INTO " + PETITIONS + "(UserID, TItle, Content, IP, PetitionAt, EndAt) VALUES (?, ?, ?, ?, ?, ?);";
                var    cmd         = new MySqlCommand(commandText, conn);
                cmd.Parameters.Add("UserID", MySqlDbType.VarChar).Value      = petition.UserID;
                cmd.Parameters.Add("Title", MySqlDbType.VarChar).Value       = petition.Title;
                cmd.Parameters.Add("Content", MySqlDbType.VarChar).Value     = petition.Content;
                cmd.Parameters.Add("IP", MySqlDbType.VarChar).Value          = petition.IP;
                cmd.Parameters.Add("PetitionAt", MySqlDbType.DateTime).Value = petition.PetitionAt;
                cmd.Parameters.Add("EndAt", MySqlDbType.DateTime).Value      = petition.EndAt;

                int result;
                try {
                    // The number of rows affected
                    result = cmd.ExecuteNonQuery();
                } catch (MySqlException e) {
                    // Returns 0 on exception
                    return(0);
                }

                // Connection Close
                conn.Close();

                return(result);
            }
        }
        public IActionResult Post([FromBody] PetitionTrace PetitionTrace)
        {
            int idPetitionTrace = 0;

            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            using (var transaction = new TransactionScope())
            {
                try
                {
                    string idUser = User.Claims.Where(c => c.Type.Equals(ClaimTypes.PrimarySid)).FirstOrDefault().Value;
                    PetitionTrace.IdUser = int.Parse(idUser);
                    idPetitionTrace      = _unitOfWork.PetitionTrace.Insert(PetitionTrace);
                    Petition petition = _unitOfWork.Petition.GetById(PetitionTrace.IdPetition);
                    if (petition.State.Equals("A"))
                    {
                        petition.State = "P";
                    }
                    _unitOfWork.Petition.Update(petition);
                    transaction.Complete();
                }
                catch (Exception ex)
                {
                    transaction.Dispose();
                    return(StatusCode(500, "Internal server error: " + ex.Message));
                }
            }
            return(Ok(idPetitionTrace));
        }
示例#16
0
        public IActionResult Post([FromBody] Petition Petition)
        {
            int idPetition = 0;

            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            using (var transaction = new TransactionScope())
            {
                try
                {
                    string idUser = User.Claims.Where(c => c.Type.Equals(ClaimTypes.PrimarySid)).FirstOrDefault().Value;
                    Petition.IdUser = int.Parse(idUser);
                    Settings settings = _unitOfWork.Settings.GetList().FirstOrDefault();
                    settings.PetitionsNumber += 1;
                    _unitOfWork.Settings.Update(settings);
                    Petition.Number = settings.PetitionsNumber;
                    idPetition      = _unitOfWork.Petition.Insert(Petition);
                    transaction.Complete();
                }
                catch (Exception ex)
                {
                    transaction.Dispose();
                    return(StatusCode(500, "Internal server error: " + ex.Message));
                }
            }
            return(Ok(idPetition));
        }
示例#17
0
 public Petition Clone(petitionCallback _onDone, progressCallback _onProgress, System.Object _userData) {
 Petition tmp = new Petition();
   tmp.www = www;
   tmp.userData = _userData;
   tmp.onDone = _onDone;
   tmp.onProgress = _onProgress;
 return tmp;
 }
示例#18
0
        public ActionResult DeleteConfirmed(int id)
        {
            Petition petition = db.Petition.Find(id);

            db.Petition.Remove(petition);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#19
0
        public IActionResult Petition(string Name, string Orginization)
        {
            if (Name != null && Orginization != null)
            {
                var checkForDuplicates = _context.Petition.FirstOrDefault(n => n.Name == Name && n.Orginization == Orginization);

                if (checkForDuplicates == null)
                {
                    Petition petition = new Petition();

                    petition.Name = Name;

                    petition.Orginization = Orginization;

                    petition.Date = DateTime.Now;

                    _context.Petition.Add(petition);

                    _context.SaveChanges();

                    PetitionViewModel petitionViewModel1 = new PetitionViewModel();

                    petitionViewModel1.Signatures = _context.Petition.OrderByDescending(x => x.Date).ToList();

                    petitionViewModel1.SigCount = _context.Petition.Count();

                    petitionViewModel1.UniqueOrginizations = _context.Petition.GroupBy(g => g.Orginization).Count();

                    TempData["Success"] = "Thanks for the Support!";

                    return(View(petitionViewModel1));
                }

                PetitionViewModel petitionViewModel2 = new PetitionViewModel();

                petitionViewModel2.Signatures = _context.Petition.OrderByDescending(x => x.Date).ToList();

                petitionViewModel2.SigCount = _context.Petition.Count();

                petitionViewModel2.UniqueOrginizations = _context.Petition.GroupBy(g => g.Orginization).Count();

                ModelState.AddModelError("Name", "Sorry You Can Only Sign Once");

                return(View(petitionViewModel2));
            }

            PetitionViewModel petitionViewModel = new PetitionViewModel();

            petitionViewModel.Signatures = _context.Petition.OrderByDescending(x => x.Date).ToList();

            petitionViewModel.SigCount = _context.Petition.Count();

            petitionViewModel.UniqueOrginizations = _context.Petition.GroupBy(g => g.Orginization).Count();

            ModelState.AddModelError("Name", "All Fields Must Be Completed");

            return(View(petitionViewModel));
        }
 public ActionResult Edit([Bind(Include = "Id,Title,Discription,Category,OwnerName")] Petition petition)
 {
     if (ModelState.IsValid)
     {
         db.Entry(petition).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(petition));
 }
示例#21
0
 public ActionResult Edit([Bind(Include = "PetitionID,Name")] Petition petition)
 {
     if (ModelState.IsValid)
     {
         db.Entry(petition).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(petition));
 }
示例#22
0
        public ActionResult <bool> makePetition(Petition petition)
        {
            var result = Service.MakePetition(petition);

            if (result == false)
            {
                return(NotFound());
            }
            return(result);
        }
        public ViewResult MarkAsSolved(int petitionID)
        {
            Petition petition = db.Petitions.Where(m => m.PetitionID == petitionID).FirstOrDefault();

            petition.Solved     = true;
            petition.DateSolved = DateTime.Now;
            db.SaveChanges();

            return(View("Details", petition));
        }
示例#24
0
        public ActionResult <bool> vote(User voter, Petition petition)
        {
            var result = Service.vote(voter, petition);

            if (result == false)
            {
                return(NotFound());
            }
            return(result);
        }
示例#25
0
        public IActionResult Update(Petition petition)
        {
            var result = _petitionService.Update(petition);

            if (result.Success)
            {
                return(Ok(result));
            }
            return(BadRequest(result));
        }
示例#26
0
        public void Getters()
        {
            //arrange
            Petition petition = new Petition();

            petition.Name = "Jason";

            //Assert
            Assert.Equal("Jason", petition.Name);
        }
示例#27
0
        public ActionResult Create([Bind(Include = "PetitionID,Name")] Petition petition)
        {
            if (ModelState.IsValid)
            {
                db.Petition.Add(petition);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(petition));
        }
示例#28
0
        public void Getter2()
        {
            //arrange
            Petition petition = new Petition();

            petition.Name         = "Jason";
            petition.Orginization = "stuff";

            //Assert
            Assert.Equal("stuff", petition.Orginization);
        }
示例#29
0
        public ActionResult PublishPetition(Guid id)
        {
            if (!Request.IsAuthenticated)
            {
                throw new AuthenticationException();
            }

            Petition petition = VotingService.PublishPetition(id, UserContext.Current.Id);

            return(RedirectToAction("petition", petition.Controller, new { id = petition.Id }));
        }
        public ActionResult Create([Bind(Include = "Id,Title,Discription,Category,OwnerName")] Petition petition)
        {
            if (ModelState.IsValid)
            {
                db.Petitons.Add(petition);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(petition));
        }
示例#31
0
        /// <summary>
        /// Create new petitions.
        /// </summary>
        /// <param name="newPetition"></param>
        /// <returns></returns>
        public OperationResult<clientEntities.Petition> AddNewPetition(clientEntities.Petition newPetition)
        {
            OperationResult<clientEntities.Petition> result;

            try
            {
                using (var db = new EDEntities())
                {
                    var script = string.Empty;
                    db.Database.Log = s => script += s;

                    // TODO: add petition already exists check
                    var petition =
                        new Petition()
                        {
                            Subject = newPetition.Subject,
                            Text = newPetition.Text,
                            Requirements = newPetition.Requirements,
                            KeyWords = newPetition.KeyWordsAsSingleString(),
                            EffectiveFrom = newPetition.EffectiveFrom == default(DateTime) ? DateTime.Now : newPetition.EffectiveFrom,
                            EffectiveTo = newPetition.EffectiveTo == default(DateTime) ? DateTime.Now.AddDays(7) : newPetition.EffectiveTo,
                            CreatedDate = DateTime.Now,
                            Limit = newPetition.Limit,
                            AddressedTo = newPetition.AddressedTo,
                            Email = newPetition.Email
                        };

                    // CreatedBy
                    var creator = db.People.SingleOrDefault(p => p.Login == newPetition.CreatedBy.Login) ?? this.GetAnonymousUser(db);
                    petition.CreatedBy = creator.ID;
                    petition.Person = null;

                    // Category
                    if (newPetition.Category == null)
                    {
                        result = OperationResult<clientEntities.Petition>.Fail(-2, "Unable to get any category info.");
                        return result;
                    }

                    var petitionCategory = db.Entities.SingleOrDefault(c => c.Name == newPetition.Category.Name);
                    if (petitionCategory == null)
                    {
                        result = OperationResult<clientEntities.Petition>.Fail(-2, string.Format("Unknown petition category - {0}.", newPetition.Category.Name));
                        return result;
                    }
                    else
                    {
                        petition.CategoryID = petitionCategory.ID;
                        petition.Category = null;
                    }

                    // Level
                    if (newPetition.Level == null)
                    {
                        result = OperationResult<clientEntities.Petition>.Fail(-3, "Unable to get any petition level info.");
                        return result;
                    }

                    var level = db.PetitionLevels.SingleOrDefault(l => l.ID == newPetition.Level.ID);
                    if (level == null)
                    {
                        result = OperationResult<clientEntities.Petition>.Fail(-3, "Unknown petition level.");
                        return result;
                    }
                    else
                    {
                        petition.LevelID = level.ID;
                        petition.PetitionLevel = null;
                    }

                    var addedPetition = db.Petitions.Add(petition);
                    db.SaveChanges();

                    result = OperationResult<clientEntities.Petition>.Success(
                        1,
                        "The petition has successfully been created.",
                        new clientEntities.Petition(addedPetition));
                }
            }
            catch (Exception exc)
            {
                result = OperationResult<clientEntities.Petition>.ExceptionResult(exc);
            }

            return result;
        }