<file_sep>﻿using Microsoft.AspNet.Identity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using UniPlatform.Models;

namespace UniPlatform.Areas.Admin.Controllers
{
    [Authorize(Roles = "admin")]
    public class DuyuruController : Controller
    {
        // GET: Admin/Duyuru
        ApplicationDbContext db = new ApplicationDbContext();
        public ActionResult Index()
        {


            return View(db.Duyurular.ToList());
        }

        public ActionResult DuyuruDetay(int id)
        {

            Duyurular istenenDuyuru = db.Duyurular.Find(id);
            if (istenenDuyuru == null)
            {
                return HttpNotFound();
            }

            List<DuyuruYorumlar> yorumlar = db.DuyuruYorumlar.Where(x => x.DuyuruID == id).ToList();
            ViewBag.Yorumlar = yorumlar;

            string loogedUserID = User.Identity.GetUserId();
            if (loogedUserID != null)
            {

                ViewBag.KullaniciAdi = db.Users.Find(loogedUserID).UserName;
            }

            return View(istenenDuyuru);
        }
    }
}<file_sep>﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;

namespace UniPlatform.Models
{
    public class DuyuruYorumlar
    {
        [Key]
        public int YorumID { get; set; }
        [ForeignKey("Duyurular")]
        public int DuyuruID { get; set; }
        public virtual Duyurular Duyurular { get; set; }
        public string YorumIcerik { get; set; }
        
    }
}<file_sep>﻿using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;

namespace UniPlatform.Models
{
    // ApplicationUser sınıfınıza daha fazla özellik ekleyerek kullanıcıya profil verileri ekleyebilirsiniz. Daha fazla bilgi için lütfen https://go.microsoft.com/fwlink/?LinkID=317594 adresini ziyaret edin.
    public class ApplicationUser : IdentityUser
    {
        public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
        {
            // authenticationType özelliğinin CookieAuthenticationOptions.AuthenticationType içinde tanımlanmış olanla eşleşmesi gerektiğini unutmayın
            var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
            // Özel kullanıcı taleplerini buraya ekle
            return userIdentity;
        }
    }

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("server=.; database=UniPlatformDb; uid=sa; pwd=123", throwIfV1Schema: false)
        {
        }

        public DbSet<Ilanlar> Ilanlar { get; set; }
        public DbSet<Duyurular> Duyurular { get; set; }
        public DbSet<DuyuruYorumlar> DuyuruYorumlar { get; set; }
        public DbSet<IlanYorumlar> IlanYorumlar { get; set; }


        public static ApplicationDbContext Create()
        {
            return new ApplicationDbContext();
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            base.OnModelCreating(modelBuilder);
        }
    }
}<file_sep>﻿using Microsoft.AspNet.Identity;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using UniPlatform.Models;
using PagedList;


namespace UniPlatform.Controllers
{
    public class HomeController : Controller
    {
        ApplicationDbContext db = new ApplicationDbContext();

        public ActionResult Index()
        {
            List<Duyurular> duyurular = db.Duyurular.Where(x => x.OnayliMi == true).Take(10).OrderByDescending(x => x.ID).ToList();
            List<Ilanlar> ilanlar = db.Ilanlar.Where(x => x.OnayliMi == true).Take(10).OrderByDescending(x => x.ID).ToList();
            
            ViewBag.duyurular = duyurular;
            ViewBag.ilanlar = ilanlar;

            return View();
        }
        [Authorize(Roles = "user")]
        public ActionResult IlanEkle()
        {
            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }

        [Authorize(Roles = "user")]
        public ActionResult DuyuruEkle()
        {
            return View();
        }

        public ActionResult DuyuruDetay(int id)
        {

            Duyurular istenenDuyuru = db.Duyurular.Find(id);
            if (istenenDuyuru == null)
            {
                return HttpNotFound();
            }

            List<DuyuruYorumlar> yorumlar = db.DuyuruYorumlar.Where(x => x.DuyuruID == id).ToList();
            ViewBag.Yorumlar = yorumlar;

            string loogedUserID = User.Identity.GetUserId();
            if (loogedUserID != null)
            {

                ViewBag.KullaniciAdi = db.Users.Find(loogedUserID).UserName;
            }

            return View(istenenDuyuru);
        }
        public ActionResult ButunDuyurular(int? page)
        {
            List<Duyurular> duyurular = new List<Duyurular>();
            //duyurular = db.Duyurular.ToList().ToPagedList(page ?? 1, 2);

            duyurular = db.Duyurular.OrderByDescending(x => x.ID).ToList();

            return View(duyurular);
        }
        
        public ActionResult IlanDetay(int id)
        {

            Ilanlar istenenIlan = db.Ilanlar.Find(id);
            if (istenenIlan == null)
            {
                return HttpNotFound();
            }

            List<IlanYorumlar> yorumlar = db.IlanYorumlar.Where(x => x.IlanID == id).ToList();
            ViewBag.Yorumlar = yorumlar;

            string loogedUserID = User.Identity.GetUserId();
            if (loogedUserID != null)
            {
                ViewBag.KullaniciAdi = db.Users.Find(loogedUserID).UserName;
            }

            return View(istenenIlan);
        }



    }
}<file_sep>namespace UniPlatform.Migrations
{
    using Microsoft.AspNet.Identity;
    using Microsoft.AspNet.Identity.EntityFramework;
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Migrations;
    using System.Linq;
    using UniPlatform.Models;

    internal sealed class Configuration : DbMigrationsConfiguration<UniPlatform.Models.ApplicationDbContext>
    {
        public Configuration()
        {
            AutomaticMigrationsEnabled = true;
        }

        protected override void Seed(ApplicationDbContext db)
        {
            //  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.


            var roleStore = new RoleStore<IdentityRole>(db);
            var roleManager = new RoleManager<IdentityRole>(roleStore);

            if (!roleManager.RoleExists("admin"))
            {
                roleManager.Create(new IdentityRole() { Name = "admin" });
            }
            if (!roleManager.RoleExists("user"))
            {
                roleManager.Create(new IdentityRole() { Name = "user" });
            }
            var userStore = new UserStore<ApplicationUser>(db);
            var userManager = new UserManager<ApplicationUser>(userStore);

            var adminUser = userManager.FindByName("<EMAIL>");

            if (adminUser == null)
            {
                adminUser = new ApplicationUser()
                {
                    UserName = "<EMAIL>",
                    Email = "<EMAIL>"
                };
                userManager.Create(adminUser, "Ankara1.");
            }
            if (!userManager.IsInRole(adminUser.Id, "admin"))
            {
                userManager.AddToRole(adminUser.Id, "admin");
            }


        }
    }
}
<file_sep>﻿using Microsoft.AspNet.Identity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Results;
using UniPlatform.Models;

namespace UniPlatform.Controllers
{
    [Authorize(Roles = "user")]
    public class DuyuruController : ApiController
    {
        ApplicationDbContext db = new ApplicationDbContext();
        // GET: Duyuru
        public HttpResponseMessage DuyuruEkle()
        {

            return Request.CreateResponse(HttpStatusCode.OK);
        }

        [HttpPost]
        public HttpResponseMessage Save(Duyurular duyuru)
        {
            string loogedUserID = User.Identity.GetUserId();

            string mesaj;
            
                Duyurular d = new Duyurular();
                d.DuyuranId = loogedUserID;
                d.DuyuruBaslik = duyuru.DuyuruBaslik;
                d.Icerik = duyuru.Icerik;
                d.DuyuruTarihi = DateTime.Now;
                d.OnayliMi = true;
                db.Duyurular.Add(d);
                db.SaveChanges();

                int duyuru_id = d.ID;
                mesaj = "Duyuru eklendi!";

            return Request.CreateResponse(mesaj);
        }
        [HttpPost]
        public HttpResponseMessage YorumEkle(DuyuruYorumlar gelen_yorum)
        {
            string loogedUserID = User.Identity.GetUserId();
            string kullanici_adi = db.Users.Find(loogedUserID).UserName;

            string mesaj;

                DuyuruYorumlar yorum = new DuyuruYorumlar();
                yorum.YorumIcerik = gelen_yorum.YorumIcerik + "<br> <strong>" + kullanici_adi + "</strong> -" + DateTime.Now ;
                yorum.DuyuruID = gelen_yorum.DuyuruID;

                db.DuyuruYorumlar.Add(yorum);
                db.SaveChanges();

                mesaj = "Duyuru eklendi!";


            return Request.CreateResponse(mesaj);
        }


    }
}
<file_sep>﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;

namespace UniPlatform.Models
{
    public class IlanYorumlar
    {
        [Key]
        public int YorumID { get; set; }
        [ForeignKey("Ilanlar")]
        public int IlanID { get; set; }
        public virtual Ilanlar Ilanlar { get; set; }
        public string YorumIcerik { get; set; }
    }
}<file_sep># UniPlatform

Live at https://uniplatform.azurewebsites.net/
<file_sep>﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;

namespace UniPlatform.Models
{
    public class Duyurular
    {
        [Key]
        public int ID { get; set; }
        [DataType("datetime2")]
        public DateTime DuyuruTarihi { get; set; }
        public string DuyuruBaslik { get; set; }
        public string Icerik { get; set; }
        public bool OnayliMi { get; set; }

        [ForeignKey("ApplicationUser")]
        public string DuyuranId { get; set; }

        public virtual ApplicationUser ApplicationUser { get; set; }
        public virtual ICollection<DuyuruYorumlar> DuyuruYorumlar { get; set; }
    }
}<file_sep>﻿using Microsoft.AspNet.Identity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using UniPlatform.Models;

namespace UniPlatform.Controllers
{
    [Authorize(Roles = "user")]
    public class IlanController : ApiController
    {
        ApplicationDbContext db = new ApplicationDbContext();

        public HttpResponseMessage IlanEkle()
        {
            return Request.CreateResponse(HttpStatusCode.OK);
        }

        [HttpPost]
        public HttpResponseMessage Save(Ilanlar ilan)
        {
            string loogedUserID = User.Identity.GetUserId();
            string mesaj;

            Ilanlar i = new Ilanlar();
            i.IlanSahibiId = loogedUserID;
            i.IlanBaslik = ilan.IlanBaslik;
            i.Icerik = ilan.Icerik;
            i.IlanTarihi = DateTime.Now;
            i.OnayliMi = true;
            db.Ilanlar.Add(i);
            db.SaveChanges();

            int duyuru_id = i.ID;
            mesaj = "Duyuru eklendi!";

            return Request.CreateResponse(mesaj);
        }

        [HttpPost]
        public HttpResponseMessage YorumEkle(DuyuruYorumlar gelen_yorum)
        {
            string loogedUserID = User.Identity.GetUserId();
            string kullanici_adi = db.Users.Find(loogedUserID).UserName;

            string mesaj;

            DuyuruYorumlar yorum = new DuyuruYorumlar();
            yorum.YorumIcerik = gelen_yorum.YorumIcerik + "<br> <strong>" + kullanici_adi + "</strong> -" + DateTime.Now;
            yorum.DuyuruID = gelen_yorum.DuyuruID;

            db.DuyuruYorumlar.Add(yorum);
            db.SaveChanges();

            mesaj = "Duyuru eklendi!";


            return Request.CreateResponse(mesaj);
        }


    }
}
