예제 #1
0
        public ActionResult ReplyMessage(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            PesanPublikToAdmin pesanPublik = db.PesanPublikToAdmin.Find(id);

            if (pesanPublik == null)
            {
                return(HttpNotFound());
            }

            ReplyPublicMessageViewModel createReplyMessage = new ReplyPublicMessageViewModel
            {
                Id             = pesanPublik.Id,
                MessageContent = pesanPublik.MessageContent,
                ReplyToEmail   = pesanPublik.SenderEmail,
                ReplyToName    = pesanPublik.SenderName,
                ReplySubject   = string.Format("Reply Message from {0} at {1} {2} GMT at www.sainstek3undana.com", pesanPublik.SenderName, pesanPublik.DateCreated.ToLongDateString(), pesanPublik.DateCreated.ToLongTimeString()),
                ReplyMessage   = string.Empty
            };

            return(PartialView(createReplyMessage));
        }
예제 #2
0
        public ActionResult SendMessage(MailMessageViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Select(x => x.Value.Errors)
                             .Where(y => y.Count > 0)
                             .ToList();

                string errorMessages = "<ul>";

                for (int i = 0; i < errors.Count; i++)
                {
                    ModelErrorCollection modelErrorCollection = errors[i];

                    for (int j = 0; j < modelErrorCollection.Count; j++)
                    {
                        if (!string.IsNullOrEmpty(modelErrorCollection[j].ErrorMessage))
                        {
                            errorMessages += "<li>";
                            errorMessages += modelErrorCollection[j].ErrorMessage;
                            errorMessages += "</li>";
                        }
                    }
                }

                errorMessages += "</ul>";

                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, errorMessages));
            }

            PesanPublikToAdmin pesan = new PesanPublikToAdmin();

            pesan.SenderName     = model.name;
            pesan.SenderEmail    = model.email;
            pesan.MessageContent = model.message;
            pesan.DateCreated    = DateTime.UtcNow;

            try
            {
                db.PesanPublikToAdmin.Add(pesan);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                ViewBag.ErrorMessage = ex.Message;
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, ex.Message));
            }

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
예제 #3
0
        public ActionResult PublicDetailsMessage(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            PesanPublikToAdmin pesanPublik = db.PesanPublikToAdmin.Find(id);

            if (pesanPublik == null)
            {
                return(HttpNotFound());
            }

            try
            {
                pesanPublik.DateAdminRead   = DateTime.UtcNow;
                db.Entry(pesanPublik).State = EntityState.Modified;
                db.SaveChanges();

                DetailPublicMessageViewModel detailPublicMessage = new DetailPublicMessageViewModel
                {
                    Id             = pesanPublik.Id,
                    SenderName     = pesanPublik.SenderName,
                    SenderEmail    = pesanPublik.SenderEmail,
                    MessageContent = pesanPublik.MessageContent,
                    DateCreated    = pesanPublik.DateCreated,
                    DateAdminRead  = pesanPublik.DateAdminRead,
                    ReplyMessage   = pesanPublik.ReplyMessage,
                    DateReply      = pesanPublik.DateReply,
                    ReplyAdminId   = pesanPublik.ReplyAdminId,
                    AlreadyReply   = pesanPublik.DateReply != null
                };

                return(PartialView(detailPublicMessage));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, ex.Message));
            }
        }
예제 #4
0
        public ActionResult ReplyMessage(ReplyPublicMessageViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Select(x => x.Value.Errors)
                             .Where(y => y.Count > 0)
                             .ToList();

                string errorMessages = "<ul>";

                for (int i = 0; i < errors.Count; i++)
                {
                    ModelErrorCollection modelErrorCollection = errors[i];

                    for (int j = 0; j < modelErrorCollection.Count; j++)
                    {
                        if (!string.IsNullOrEmpty(modelErrorCollection[j].ErrorMessage))
                        {
                            errorMessages += "<li>";
                            errorMessages += modelErrorCollection[j].ErrorMessage;
                            errorMessages += "</li>";
                        }
                    }
                }

                errorMessages += "</ul>";

                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, errorMessages));
            }

            PesanPublikToAdmin pesanPublik = db.PesanPublikToAdmin.Find(model.Id);

            if (pesanPublik == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Entity not found."));
            }

            string emailSendErrorMessage = string.Empty;

            if (!SendMailFromPanitiaEmail(model.ReplyToEmail, model.ReplySubject, model.ReplyMessage, out emailSendErrorMessage))
            {
                ModelState.AddModelError("", emailSendErrorMessage);

                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, emailSendErrorMessage));
            }
            try
            {
                if (pesanPublik.DateAdminRead == null)
                {
                    pesanPublik.DateAdminRead = DateTime.UtcNow;
                }

                pesanPublik.DateReply    = DateTime.UtcNow;
                pesanPublik.ReplyMessage = model.ReplyMessage;
                pesanPublik.ReplyAdminId = User.Identity.GetUserId();

                db.Entry(pesanPublik).State = EntityState.Modified;
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, ex.Message));
            }

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
예제 #5
0
        protected override void Seed(SainsTekWepApp.Data.ApplicationDbContext context)
        {
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data. E.g.
            //
            //    context.People.AddOrUpdate(
            //      p => p.FullName,
            //      new Person { FullName = "Andrew Peters" },
            //      new Person { FullName = "Brice Lambson" },
            //      new Person { FullName = "Rowan Miller" }
            //    );
            //
            if (!context.Roles.Any(r => r.Name == "Admin"))
            {
                var store   = new RoleStore <IdentityRole>(context);
                var manager = new RoleManager <IdentityRole>(store);
                var role    = new IdentityRole {
                    Name = "Admin"
                };

                manager.Create(role);
            }

            if (!context.Roles.Any(r => r.Name == "Peserta"))
            {
                var store   = new RoleStore <IdentityRole>(context);
                var manager = new RoleManager <IdentityRole>(store);
                var role    = new IdentityRole {
                    Name = "Peserta"
                };

                manager.Create(role);
            }

            if (!context.Roles.Any(r => r.Name == "Pemakalah"))
            {
                var store   = new RoleStore <IdentityRole>(context);
                var manager = new RoleManager <IdentityRole>(store);
                var role    = new IdentityRole {
                    Name = "Pemakalah"
                };

                manager.Create(role);
            }

            if (!context.Users.Any())
            {
                var store   = new UserStore <ApplicationUser>(context);
                var manager = new UserManager <ApplicationUser>(store);
                var user    = new ApplicationUser {
                    UserName = "******"
                };

                manager.Create(user, "sasasa");
                manager.AddToRole(user.Id, "Admin");
            }

            if (!context.KategoriMakalah.Any())
            {
                KategoriMakalah newKategoriMakalah1 = new KategoriMakalah
                {
                    Name        = "Teknik Sipil, Material dan Infrastruktur",
                    Description = "Teknik Sipil, Material dan Infrastruktur"
                };

                KategoriMakalah newKategoriMakalah2 = new KategoriMakalah
                {
                    Name        = "Arsitektur dan Perencanaan wilayah",
                    Description = "Arsitektur dan Perencanaan wilayah"
                };

                KategoriMakalah newKategoriMakalah3 = new KategoriMakalah
                {
                    Name        = "Ilmu Komputer, Informatika dan Teknik Elektro",
                    Description = "Ilmu Komputer, Informatika dan Teknik Elektro"
                };

                KategoriMakalah newKategoriMakalah4 = new KategoriMakalah
                {
                    Name        = "Pertanian, Peternakan dan Manajemen Peternakan",
                    Description = "Pertanian, Peternakan dan Manajemen Peternakan"
                };

                KategoriMakalah newKategoriMakalah5 = new KategoriMakalah
                {
                    Name        = "Matematika, Kimia, Fisika, Geofisika dan Astronomi",
                    Description = "Matematika, Kimia, Fisika, Geofisika dan Astronomi"
                };

                KategoriMakalah newKategoriMakalah6 = new KategoriMakalah
                {
                    Name        = "Geologi, Tambang, Metalurgi, dan Teknik Mesin",
                    Description = "Geologi, Tambang, Metalurgi, dan Teknik Mesin"
                };

                KategoriMakalah newKategoriMakalah7 = new KategoriMakalah
                {
                    Name        = "Kemaritiman dan Kelautan",
                    Description = "Kemaritiman dan Kelautan"
                };

                KategoriMakalah newKategoriMakalah8 = new KategoriMakalah
                {
                    Name        = "Bidang Umum Lainnya",
                    Description = "Bidang Umum Lainnya"
                };

                context.KategoriMakalah.Add(newKategoriMakalah1);
                context.KategoriMakalah.Add(newKategoriMakalah2);
                context.KategoriMakalah.Add(newKategoriMakalah3);
                context.KategoriMakalah.Add(newKategoriMakalah4);
                context.KategoriMakalah.Add(newKategoriMakalah5);
                context.KategoriMakalah.Add(newKategoriMakalah6);
                context.KategoriMakalah.Add(newKategoriMakalah7);
                context.KategoriMakalah.Add(newKategoriMakalah8);
            }

            int publicMessageCount = 1000;

            if (context.PesanPublikToAdmin.Count() < publicMessageCount)
            {
                List <PesanPublikToAdmin> listPesanPublic = new List <PesanPublikToAdmin>();

                for (int i = 0; i < publicMessageCount; i++)
                {
                    PesanPublikToAdmin publicMessage = new PesanPublikToAdmin
                    {
                        SenderEmail    = string.Format("email{0}@hewqewq{0}.com", i + 1),
                        SenderName     = string.Format("username{0}", i + 1),
                        MessageContent = string.Format("Message Content - {0}", i + 1),
                    };

                    if (i < publicMessageCount / 3)
                    {
                        publicMessage.DateAdminRead = DateTime.UtcNow.AddMinutes(i + 1);
                    }
                    else if (i < (publicMessageCount / 3) * 2)
                    {
                        publicMessage.DateAdminRead = DateTime.UtcNow.AddMinutes(i + 1);
                        publicMessage.DateReply     = DateTime.UtcNow.AddMinutes(i + 5);
                    }

                    listPesanPublic.Add(publicMessage);
                }

                context.PesanPublikToAdmin.AddRange(listPesanPublic);
            }
        }