WIP chat connections
This commit is contained in:
@ -54,7 +54,7 @@ namespace Yavsc.Controllers
|
|||||||
if (User.Identity.IsAuthenticated) {
|
if (User.Identity.IsAuthenticated) {
|
||||||
ViewBag.IsAuthenticated=true;
|
ViewBag.IsAuthenticated=true;
|
||||||
string uid = User.GetUserId();
|
string uid = User.GetUserId();
|
||||||
ViewBag.Contacts = DbContext.Contacts.Include(c=>c.User).Where(c=>c.OwnerId == uid)
|
ViewBag.Contacts = DbContext.Contacts.Where(c=>c.OwnerId == uid)
|
||||||
;
|
;
|
||||||
} else ViewBag.IsAuthenticated=false;
|
} else ViewBag.IsAuthenticated=false;
|
||||||
return View();
|
return View();
|
||||||
|
@ -22,47 +22,103 @@ using System.Threading.Tasks;
|
|||||||
using Microsoft.AspNet.SignalR;
|
using Microsoft.AspNet.SignalR;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Yavsc.Models;
|
||||||
|
using Yavsc.Model.Chat;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace Yavsc
|
namespace Yavsc
|
||||||
{
|
{
|
||||||
|
|
||||||
public class ChatHub : Hub
|
public class ChatHub : Hub
|
||||||
{
|
{
|
||||||
|
|
||||||
public override Task OnConnected()
|
public override Task OnConnected()
|
||||||
{
|
{
|
||||||
bool isAuth = false;
|
bool isAuth = false;
|
||||||
string userId = null;
|
string userName = null;
|
||||||
if (Context.User != null)
|
if (Context.User != null)
|
||||||
{
|
{
|
||||||
isAuth = Context.User.Identity.IsAuthenticated;
|
isAuth = Context.User.Identity.IsAuthenticated;
|
||||||
userId = Context.User.Identity.Name;
|
userName = Context.User.Identity.Name;
|
||||||
var group = isAuth ?
|
var group = isAuth ?
|
||||||
"authenticated" : "anonymous";
|
"authenticated" : "anonymous";
|
||||||
// Log ("Cx: " + group);
|
// Log ("Cx: " + group);
|
||||||
Groups.Add(Context.ConnectionId, group);
|
Groups.Add(Context.ConnectionId, group);
|
||||||
|
if (isAuth)
|
||||||
|
{
|
||||||
|
using (var db = new ApplicationDbContext()) {
|
||||||
|
var user = db.Users.Single(u => u.UserName == userName);
|
||||||
|
if (user.Connections==null)
|
||||||
|
user.Connections = new List<Connection>();
|
||||||
|
user.Connections.Add(new Connection
|
||||||
|
{
|
||||||
|
ConnectionID = Context.ConnectionId,
|
||||||
|
UserAgent = Context.Request.Headers["User-Agent"],
|
||||||
|
Connected = true
|
||||||
|
});
|
||||||
|
db.SaveChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else Groups.Add(Context.ConnectionId, "anonymous");
|
else Groups.Add(Context.ConnectionId, "anonymous");
|
||||||
|
|
||||||
Clients.Group("authenticated").notify("connected", Context.ConnectionId, userId);
|
Clients.Group("authenticated").notify("connected", Context.ConnectionId, userName);
|
||||||
|
|
||||||
list.Add(new UserInfo
|
list.Add(new UserInfo
|
||||||
{
|
{
|
||||||
ConnectionId = Context.ConnectionId,
|
ConnectionId = Context.ConnectionId,
|
||||||
UserName = userId
|
UserName = userName
|
||||||
});
|
});
|
||||||
|
|
||||||
return base.OnConnected();
|
return base.OnConnected();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Task OnDisconnected(bool stopCalled)
|
public override Task OnDisconnected(bool stopCalled)
|
||||||
{
|
{
|
||||||
string userId = Context.User?.Identity.Name;
|
string userName = Context.User?.Identity.Name;
|
||||||
Clients.Group("authenticated").notify("disconnected", Context.ConnectionId, userId);
|
if (userName != null)
|
||||||
list.Remove(list.Single(c=>c.ConnectionId==Context.ConnectionId));
|
{
|
||||||
|
using (var db = new ApplicationDbContext()) {
|
||||||
|
var user = db.Users.Single(u => u.UserName == userName);
|
||||||
|
var cx = user.Connections.SingleOrDefault(c => c.ConnectionID == Context.ConnectionId);
|
||||||
|
if (cx != null)
|
||||||
|
{
|
||||||
|
if (stopCalled)
|
||||||
|
{
|
||||||
|
user.Connections.Remove(cx);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cx.Connected = false;
|
||||||
|
}
|
||||||
|
db.SaveChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Clients.Group("authenticated").notify("disconnected", Context.ConnectionId, userName);
|
||||||
|
list.Remove(list.Single(c => c.ConnectionId == Context.ConnectionId));
|
||||||
return base.OnDisconnected(stopCalled);
|
return base.OnDisconnected(stopCalled);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Task OnReconnected()
|
public override Task OnReconnected()
|
||||||
{
|
{
|
||||||
|
string userName = Context.User?.Identity.Name;
|
||||||
|
if (userName != null)
|
||||||
|
{
|
||||||
|
using (var db = new ApplicationDbContext()) {
|
||||||
|
var user = db.Users.Single(u => u.UserName == userName);
|
||||||
|
if (user.Connections!=null) {
|
||||||
|
var cx = user.Connections.SingleOrDefault(c => c.ConnectionID == Context.ConnectionId);
|
||||||
|
if (cx != null)
|
||||||
|
{
|
||||||
|
cx.Connected = true;
|
||||||
|
db.SaveChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return base.OnReconnected();
|
return base.OnReconnected();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,9 +151,11 @@ namespace Yavsc
|
|||||||
|
|
||||||
public string UserName { get; set; }
|
public string UserName { get; set; }
|
||||||
|
|
||||||
|
public string Avatar { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static List<UserInfo> list = new List<UserInfo>();
|
static List<UserInfo> list = new List<UserInfo>();
|
||||||
[Authorize]
|
[Authorize]
|
||||||
public IEnumerable<UserInfo> GetUserList()
|
public IEnumerable<UserInfo> GetUserList()
|
||||||
{
|
{
|
||||||
|
804
Yavsc/Migrations/20161101234703_chatConnection.Designer.cs
generated
Normal file
804
Yavsc/Migrations/20161101234703_chatConnection.Designer.cs
generated
Normal file
@ -0,0 +1,804 @@
|
|||||||
|
using System;
|
||||||
|
using Microsoft.Data.Entity;
|
||||||
|
using Microsoft.Data.Entity.Infrastructure;
|
||||||
|
using Microsoft.Data.Entity.Metadata;
|
||||||
|
using Microsoft.Data.Entity.Migrations;
|
||||||
|
using Yavsc.Models;
|
||||||
|
|
||||||
|
namespace Yavsc.Migrations
|
||||||
|
{
|
||||||
|
[DbContext(typeof(ApplicationDbContext))]
|
||||||
|
[Migration("20161101234703_chatConnection")]
|
||||||
|
partial class chatConnection
|
||||||
|
{
|
||||||
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
modelBuilder
|
||||||
|
.HasAnnotation("ProductVersion", "7.0.0-rc1-16348");
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRole", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("Id");
|
||||||
|
|
||||||
|
b.Property<string>("ConcurrencyStamp")
|
||||||
|
.IsConcurrencyToken();
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.HasAnnotation("MaxLength", 256);
|
||||||
|
|
||||||
|
b.Property<string>("NormalizedName")
|
||||||
|
.HasAnnotation("MaxLength", 256);
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("NormalizedName")
|
||||||
|
.HasAnnotation("Relational:Name", "RoleNameIndex");
|
||||||
|
|
||||||
|
b.HasAnnotation("Relational:TableName", "AspNetRoles");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim<string>", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("ClaimType");
|
||||||
|
|
||||||
|
b.Property<string>("ClaimValue");
|
||||||
|
|
||||||
|
b.Property<string>("RoleId")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasAnnotation("Relational:TableName", "AspNetRoleClaims");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim<string>", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("ClaimType");
|
||||||
|
|
||||||
|
b.Property<string>("ClaimValue");
|
||||||
|
|
||||||
|
b.Property<string>("UserId")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasAnnotation("Relational:TableName", "AspNetUserClaims");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin<string>", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("LoginProvider");
|
||||||
|
|
||||||
|
b.Property<string>("ProviderKey");
|
||||||
|
|
||||||
|
b.Property<string>("ProviderDisplayName");
|
||||||
|
|
||||||
|
b.Property<string>("UserId")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasKey("LoginProvider", "ProviderKey");
|
||||||
|
|
||||||
|
b.HasAnnotation("Relational:TableName", "AspNetUserLogins");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole<string>", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("UserId");
|
||||||
|
|
||||||
|
b.Property<string>("RoleId");
|
||||||
|
|
||||||
|
b.HasKey("UserId", "RoleId");
|
||||||
|
|
||||||
|
b.HasAnnotation("Relational:TableName", "AspNetUserRoles");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Location", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("Address")
|
||||||
|
.IsRequired()
|
||||||
|
.HasAnnotation("MaxLength", 512);
|
||||||
|
|
||||||
|
b.Property<double>("Latitude");
|
||||||
|
|
||||||
|
b.Property<double>("Longitude");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Model.Chat.Connection", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("ConnectionID");
|
||||||
|
|
||||||
|
b.Property<string>("ApplicationUserId");
|
||||||
|
|
||||||
|
b.Property<bool>("Connected");
|
||||||
|
|
||||||
|
b.Property<string>("UserAgent");
|
||||||
|
|
||||||
|
b.HasKey("ConnectionID");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Model.ClientProviderInfo", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("UserId");
|
||||||
|
|
||||||
|
b.Property<string>("Avatar");
|
||||||
|
|
||||||
|
b.Property<long?>("BillingAddressId");
|
||||||
|
|
||||||
|
b.Property<string>("ChatHubConnectionId");
|
||||||
|
|
||||||
|
b.Property<string>("EMail");
|
||||||
|
|
||||||
|
b.Property<string>("Phone");
|
||||||
|
|
||||||
|
b.Property<int>("Rate");
|
||||||
|
|
||||||
|
b.Property<string>("UserName");
|
||||||
|
|
||||||
|
b.HasKey("UserId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.AccountBalance", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("UserId");
|
||||||
|
|
||||||
|
b.Property<long>("ContactCredits");
|
||||||
|
|
||||||
|
b.Property<decimal>("Credits");
|
||||||
|
|
||||||
|
b.HasKey("UserId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Activity", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("Code")
|
||||||
|
.HasAnnotation("MaxLength", 512);
|
||||||
|
|
||||||
|
b.Property<string>("ActorDenomination");
|
||||||
|
|
||||||
|
b.Property<string>("Description");
|
||||||
|
|
||||||
|
b.Property<string>("ModeratorGroupName");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasAnnotation("MaxLength", 512);
|
||||||
|
|
||||||
|
b.Property<string>("Photo");
|
||||||
|
|
||||||
|
b.HasKey("Code");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.ApplicationUser", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("Id");
|
||||||
|
|
||||||
|
b.Property<int>("AccessFailedCount");
|
||||||
|
|
||||||
|
b.Property<string>("Avatar")
|
||||||
|
.HasAnnotation("MaxLength", 512);
|
||||||
|
|
||||||
|
b.Property<string>("ConcurrencyStamp")
|
||||||
|
.IsConcurrencyToken();
|
||||||
|
|
||||||
|
b.Property<string>("DedicatedGoogleCalendar");
|
||||||
|
|
||||||
|
b.Property<string>("Email")
|
||||||
|
.HasAnnotation("MaxLength", 256);
|
||||||
|
|
||||||
|
b.Property<bool>("EmailConfirmed");
|
||||||
|
|
||||||
|
b.Property<string>("FullName")
|
||||||
|
.HasAnnotation("MaxLength", 512);
|
||||||
|
|
||||||
|
b.Property<bool>("LockoutEnabled");
|
||||||
|
|
||||||
|
b.Property<DateTimeOffset?>("LockoutEnd");
|
||||||
|
|
||||||
|
b.Property<string>("NormalizedEmail")
|
||||||
|
.HasAnnotation("MaxLength", 256);
|
||||||
|
|
||||||
|
b.Property<string>("NormalizedUserName")
|
||||||
|
.HasAnnotation("MaxLength", 256);
|
||||||
|
|
||||||
|
b.Property<string>("PasswordHash");
|
||||||
|
|
||||||
|
b.Property<string>("PhoneNumber");
|
||||||
|
|
||||||
|
b.Property<bool>("PhoneNumberConfirmed");
|
||||||
|
|
||||||
|
b.Property<long?>("PostalAddressId");
|
||||||
|
|
||||||
|
b.Property<string>("SecurityStamp");
|
||||||
|
|
||||||
|
b.Property<bool>("TwoFactorEnabled");
|
||||||
|
|
||||||
|
b.Property<string>("UserName")
|
||||||
|
.HasAnnotation("MaxLength", 256);
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("NormalizedEmail")
|
||||||
|
.HasAnnotation("Relational:Name", "EmailIndex");
|
||||||
|
|
||||||
|
b.HasIndex("NormalizedUserName")
|
||||||
|
.HasAnnotation("Relational:Name", "UserNameIndex");
|
||||||
|
|
||||||
|
b.HasAnnotation("Relational:TableName", "AspNetUsers");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Auth.Client", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("Id");
|
||||||
|
|
||||||
|
b.Property<bool>("Active");
|
||||||
|
|
||||||
|
b.Property<string>("DisplayName");
|
||||||
|
|
||||||
|
b.Property<string>("LogoutRedirectUri")
|
||||||
|
.HasAnnotation("MaxLength", 100);
|
||||||
|
|
||||||
|
b.Property<string>("RedirectUri");
|
||||||
|
|
||||||
|
b.Property<int>("RefreshTokenLifeTime");
|
||||||
|
|
||||||
|
b.Property<string>("Secret");
|
||||||
|
|
||||||
|
b.Property<int>("Type");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Auth.RefreshToken", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("Id");
|
||||||
|
|
||||||
|
b.Property<string>("ClientId")
|
||||||
|
.IsRequired()
|
||||||
|
.HasAnnotation("MaxLength", 50);
|
||||||
|
|
||||||
|
b.Property<DateTime>("ExpiresUtc");
|
||||||
|
|
||||||
|
b.Property<DateTime>("IssuedUtc");
|
||||||
|
|
||||||
|
b.Property<string>("ProtectedTicket")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Property<string>("Subject")
|
||||||
|
.IsRequired()
|
||||||
|
.HasAnnotation("MaxLength", 50);
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.BalanceImpact", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("BalanceId")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Property<DateTime>("ExecDate");
|
||||||
|
|
||||||
|
b.Property<decimal>("Impact");
|
||||||
|
|
||||||
|
b.Property<string>("Reason")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<long?>("ArticleId");
|
||||||
|
|
||||||
|
b.Property<int>("Count");
|
||||||
|
|
||||||
|
b.Property<string>("Description")
|
||||||
|
.IsRequired()
|
||||||
|
.HasAnnotation("MaxLength", 512);
|
||||||
|
|
||||||
|
b.Property<long>("EstimateId");
|
||||||
|
|
||||||
|
b.Property<long?>("EstimateTemplateId");
|
||||||
|
|
||||||
|
b.Property<decimal>("UnitaryCost");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("AttachedFilesString");
|
||||||
|
|
||||||
|
b.Property<string>("AttachedGraphicsString");
|
||||||
|
|
||||||
|
b.Property<DateTime>("ClientApprouvalDate");
|
||||||
|
|
||||||
|
b.Property<string>("ClientId")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Property<long?>("CommandId");
|
||||||
|
|
||||||
|
b.Property<string>("CommandType");
|
||||||
|
|
||||||
|
b.Property<string>("Description");
|
||||||
|
|
||||||
|
b.Property<DateTime>("LatestValidationDate");
|
||||||
|
|
||||||
|
b.Property<string>("OwnerId")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Property<int?>("Status");
|
||||||
|
|
||||||
|
b.Property<string>("Title");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Billing.EstimateTemplate", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("Description");
|
||||||
|
|
||||||
|
b.Property<string>("OwnerId")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Property<string>("Title");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Billing.ExceptionSIREN", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("SIREN");
|
||||||
|
|
||||||
|
b.HasKey("SIREN");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Blog", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("AuthorId");
|
||||||
|
|
||||||
|
b.Property<string>("Content");
|
||||||
|
|
||||||
|
b.Property<DateTime>("Modified");
|
||||||
|
|
||||||
|
b.Property<string>("Photo");
|
||||||
|
|
||||||
|
b.Property<DateTime>("Posted")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasAnnotation("Relational:GeneratedValueSql", "LOCALTIMESTAMP");
|
||||||
|
|
||||||
|
b.Property<int>("Rate");
|
||||||
|
|
||||||
|
b.Property<string>("Title");
|
||||||
|
|
||||||
|
b.Property<bool>("Visible");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Booking.BookQuery", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("ClientId")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationDate")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasAnnotation("Relational:GeneratedValueSql", "LOCALTIMESTAMP");
|
||||||
|
|
||||||
|
b.Property<DateTime>("EventDate");
|
||||||
|
|
||||||
|
b.Property<long?>("LocationId");
|
||||||
|
|
||||||
|
b.Property<string>("PerformerId")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Property<decimal?>("Previsional");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("ValidationDate");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Circle", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("ApplicationUserId");
|
||||||
|
|
||||||
|
b.Property<string>("Name");
|
||||||
|
|
||||||
|
b.Property<string>("OwnerId");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.CircleMember", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<long>("CircleId");
|
||||||
|
|
||||||
|
b.Property<string>("MemberId")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Contact", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("OwnerId");
|
||||||
|
|
||||||
|
b.Property<string>("UserId");
|
||||||
|
|
||||||
|
b.Property<string>("ApplicationUserId");
|
||||||
|
|
||||||
|
b.HasKey("OwnerId", "UserId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("DeviceId");
|
||||||
|
|
||||||
|
b.Property<DateTime>("DeclarationDate")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasAnnotation("Relational:GeneratedValueSql", "LOCALTIMESTAMP");
|
||||||
|
|
||||||
|
b.Property<string>("DeviceOwnerId");
|
||||||
|
|
||||||
|
b.Property<string>("GCMRegistrationId")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Property<string>("Model");
|
||||||
|
|
||||||
|
b.Property<string>("Platform");
|
||||||
|
|
||||||
|
b.Property<string>("Version");
|
||||||
|
|
||||||
|
b.HasKey("DeviceId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Market.BaseProduct", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("Description");
|
||||||
|
|
||||||
|
b.Property<string>("Discriminator")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Property<string>("Name");
|
||||||
|
|
||||||
|
b.Property<bool>("Public");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasAnnotation("Relational:DiscriminatorProperty", "Discriminator");
|
||||||
|
|
||||||
|
b.HasAnnotation("Relational:DiscriminatorValue", "BaseProduct");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Market.Service", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("ContextId");
|
||||||
|
|
||||||
|
b.Property<string>("Description");
|
||||||
|
|
||||||
|
b.Property<string>("Name");
|
||||||
|
|
||||||
|
b.Property<bool>("Public");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.OAuth.OAuth2Tokens", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("UserId");
|
||||||
|
|
||||||
|
b.Property<string>("AccessToken");
|
||||||
|
|
||||||
|
b.Property<DateTime>("Expiration");
|
||||||
|
|
||||||
|
b.Property<string>("ExpiresIn");
|
||||||
|
|
||||||
|
b.Property<string>("RefreshToken");
|
||||||
|
|
||||||
|
b.Property<string>("TokenType");
|
||||||
|
|
||||||
|
b.HasKey("UserId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.PostTag", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("PostId");
|
||||||
|
|
||||||
|
b.Property<long>("TagId");
|
||||||
|
|
||||||
|
b.HasKey("PostId", "TagId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Skill", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("Name");
|
||||||
|
|
||||||
|
b.Property<int>("Rate");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Tag", b =>
|
||||||
|
{
|
||||||
|
b.Property<long>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("PerformerId");
|
||||||
|
|
||||||
|
b.Property<bool>("AcceptGeoLocalization");
|
||||||
|
|
||||||
|
b.Property<bool>("AcceptNotifications");
|
||||||
|
|
||||||
|
b.Property<bool>("AcceptPublicContact");
|
||||||
|
|
||||||
|
b.Property<bool>("Active");
|
||||||
|
|
||||||
|
b.Property<string>("ActivityCode")
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Property<int?>("MaxDailyCost");
|
||||||
|
|
||||||
|
b.Property<int?>("MinDailyCost");
|
||||||
|
|
||||||
|
b.Property<long?>("OfferId");
|
||||||
|
|
||||||
|
b.Property<long>("OrganizationAddressId");
|
||||||
|
|
||||||
|
b.Property<int>("Rate");
|
||||||
|
|
||||||
|
b.Property<string>("SIREN")
|
||||||
|
.IsRequired()
|
||||||
|
.HasAnnotation("MaxLength", 14);
|
||||||
|
|
||||||
|
b.Property<string>("WebSite");
|
||||||
|
|
||||||
|
b.HasKey("PerformerId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Market.Product", b =>
|
||||||
|
{
|
||||||
|
b.HasBaseType("Yavsc.Models.Market.BaseProduct");
|
||||||
|
|
||||||
|
b.Property<decimal>("Depth");
|
||||||
|
|
||||||
|
b.Property<decimal>("Height");
|
||||||
|
|
||||||
|
b.Property<decimal?>("Price");
|
||||||
|
|
||||||
|
b.Property<decimal>("Weight");
|
||||||
|
|
||||||
|
b.Property<decimal>("Width");
|
||||||
|
|
||||||
|
b.HasAnnotation("Relational:DiscriminatorValue", "Product");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim<string>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("RoleId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim<string>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("UserId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin<string>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("UserId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole<string>", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Microsoft.AspNet.Identity.EntityFramework.IdentityRole")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("RoleId");
|
||||||
|
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("UserId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Model.Chat.Connection", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("ApplicationUserId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Model.ClientProviderInfo", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Location")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("BillingAddressId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.AccountBalance", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithOne()
|
||||||
|
.HasForeignKey("Yavsc.Models.AccountBalance", "UserId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.ApplicationUser", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Location")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PostalAddressId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.BalanceImpact", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.AccountBalance")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("BalanceId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.Market.BaseProduct")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("ArticleId");
|
||||||
|
|
||||||
|
b.HasOne("Yavsc.Models.Billing.Estimate")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("EstimateId");
|
||||||
|
|
||||||
|
b.HasOne("Yavsc.Models.Billing.EstimateTemplate")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("EstimateTemplateId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.Booking.BookQuery")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("CommandId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Blog", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("AuthorId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Booking.BookQuery", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("ClientId");
|
||||||
|
|
||||||
|
b.HasOne("Yavsc.Location")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("LocationId");
|
||||||
|
|
||||||
|
b.HasOne("Yavsc.Models.Workflow.PerformerProfile")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PerformerId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Circle", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("ApplicationUserId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.CircleMember", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.Circle")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("CircleId");
|
||||||
|
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("MemberId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Contact", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("ApplicationUserId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Identity.GoogleCloudMobileDeclaration", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("DeviceOwnerId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Market.Service", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.Activity")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("ContextId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.PostTag", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.Blog")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PostId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Models.Workflow.PerformerProfile", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.Activity")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("ActivityCode");
|
||||||
|
|
||||||
|
b.HasOne("Yavsc.Models.Market.Service")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("OfferId");
|
||||||
|
|
||||||
|
b.HasOne("Yavsc.Location")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("OrganizationAddressId");
|
||||||
|
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("PerformerId");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
317
Yavsc/Migrations/20161101234703_chatConnection.cs
Normal file
317
Yavsc/Migrations/20161101234703_chatConnection.cs
Normal file
@ -0,0 +1,317 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Microsoft.Data.Entity.Migrations;
|
||||||
|
|
||||||
|
namespace Yavsc.Migrations
|
||||||
|
{
|
||||||
|
public partial class chatConnection : Migration
|
||||||
|
{
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim<string>_IdentityRole_RoleId", table: "AspNetRoleClaims");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim<string>_ApplicationUser_UserId", table: "AspNetUserClaims");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin<string>_ApplicationUser_UserId", table: "AspNetUserLogins");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole<string>_IdentityRole_RoleId", table: "AspNetUserRoles");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole<string>_ApplicationUser_UserId", table: "AspNetUserRoles");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_BookQuery_ApplicationUser_ClientId", table: "BookQuery");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_BookQuery_PerformerProfile_PerformerId", table: "BookQuery");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Activity_ActivityCode", table: "PerformerProfile");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile");
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Connection",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
ConnectionID = table.Column<string>(nullable: false),
|
||||||
|
ApplicationUserId = table.Column<string>(nullable: true),
|
||||||
|
Connected = table.Column<bool>(nullable: false),
|
||||||
|
UserAgent = table.Column<string>(nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Connection", x => x.ConnectionID);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_Connection_ApplicationUser_ApplicationUserId",
|
||||||
|
column: x => x.ApplicationUserId,
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
});
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "ClientProviderInfo",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
UserId = table.Column<string>(nullable: false),
|
||||||
|
Avatar = table.Column<string>(nullable: true),
|
||||||
|
BillingAddressId = table.Column<long>(nullable: true),
|
||||||
|
ChatHubConnectionId = table.Column<string>(nullable: true),
|
||||||
|
EMail = table.Column<string>(nullable: true),
|
||||||
|
Phone = table.Column<string>(nullable: true),
|
||||||
|
Rate = table.Column<int>(nullable: false),
|
||||||
|
UserName = table.Column<string>(nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_ClientProviderInfo", x => x.UserId);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_ClientProviderInfo_Location_BillingAddressId",
|
||||||
|
column: x => x.BillingAddressId,
|
||||||
|
principalTable: "Location",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
});
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_IdentityRoleClaim<string>_IdentityRole_RoleId",
|
||||||
|
table: "AspNetRoleClaims",
|
||||||
|
column: "RoleId",
|
||||||
|
principalTable: "AspNetRoles",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_IdentityUserClaim<string>_ApplicationUser_UserId",
|
||||||
|
table: "AspNetUserClaims",
|
||||||
|
column: "UserId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_IdentityUserLogin<string>_ApplicationUser_UserId",
|
||||||
|
table: "AspNetUserLogins",
|
||||||
|
column: "UserId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_IdentityUserRole<string>_IdentityRole_RoleId",
|
||||||
|
table: "AspNetUserRoles",
|
||||||
|
column: "RoleId",
|
||||||
|
principalTable: "AspNetRoles",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_IdentityUserRole<string>_ApplicationUser_UserId",
|
||||||
|
table: "AspNetUserRoles",
|
||||||
|
column: "UserId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_AccountBalance_ApplicationUser_UserId",
|
||||||
|
table: "AccountBalance",
|
||||||
|
column: "UserId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_BalanceImpact_AccountBalance_BalanceId",
|
||||||
|
table: "BalanceImpact",
|
||||||
|
column: "BalanceId",
|
||||||
|
principalTable: "AccountBalance",
|
||||||
|
principalColumn: "UserId",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_CommandLine_Estimate_EstimateId",
|
||||||
|
table: "CommandLine",
|
||||||
|
column: "EstimateId",
|
||||||
|
principalTable: "Estimate",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_BookQuery_ApplicationUser_ClientId",
|
||||||
|
table: "BookQuery",
|
||||||
|
column: "ClientId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_BookQuery_PerformerProfile_PerformerId",
|
||||||
|
table: "BookQuery",
|
||||||
|
column: "PerformerId",
|
||||||
|
principalTable: "PerformerProfile",
|
||||||
|
principalColumn: "PerformerId",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_CircleMember_Circle_CircleId",
|
||||||
|
table: "CircleMember",
|
||||||
|
column: "CircleId",
|
||||||
|
principalTable: "Circle",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_CircleMember_ApplicationUser_MemberId",
|
||||||
|
table: "CircleMember",
|
||||||
|
column: "MemberId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_PostTag_Blog_PostId",
|
||||||
|
table: "PostTag",
|
||||||
|
column: "PostId",
|
||||||
|
principalTable: "Blog",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_PerformerProfile_Activity_ActivityCode",
|
||||||
|
table: "PerformerProfile",
|
||||||
|
column: "ActivityCode",
|
||||||
|
principalTable: "Activity",
|
||||||
|
principalColumn: "Code",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_PerformerProfile_Location_OrganizationAddressId",
|
||||||
|
table: "PerformerProfile",
|
||||||
|
column: "OrganizationAddressId",
|
||||||
|
principalTable: "Location",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_PerformerProfile_ApplicationUser_PerformerId",
|
||||||
|
table: "PerformerProfile",
|
||||||
|
column: "PerformerId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim<string>_IdentityRole_RoleId", table: "AspNetRoleClaims");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim<string>_ApplicationUser_UserId", table: "AspNetUserClaims");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin<string>_ApplicationUser_UserId", table: "AspNetUserLogins");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole<string>_IdentityRole_RoleId", table: "AspNetUserRoles");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole<string>_ApplicationUser_UserId", table: "AspNetUserRoles");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_BookQuery_ApplicationUser_ClientId", table: "BookQuery");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_BookQuery_PerformerProfile_PerformerId", table: "BookQuery");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_PostTag_Blog_PostId", table: "PostTag");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Activity_ActivityCode", table: "PerformerProfile");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile");
|
||||||
|
migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile");
|
||||||
|
migrationBuilder.DropTable("Connection");
|
||||||
|
migrationBuilder.DropTable("ClientProviderInfo");
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_IdentityRoleClaim<string>_IdentityRole_RoleId",
|
||||||
|
table: "AspNetRoleClaims",
|
||||||
|
column: "RoleId",
|
||||||
|
principalTable: "AspNetRoles",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_IdentityUserClaim<string>_ApplicationUser_UserId",
|
||||||
|
table: "AspNetUserClaims",
|
||||||
|
column: "UserId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_IdentityUserLogin<string>_ApplicationUser_UserId",
|
||||||
|
table: "AspNetUserLogins",
|
||||||
|
column: "UserId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_IdentityUserRole<string>_IdentityRole_RoleId",
|
||||||
|
table: "AspNetUserRoles",
|
||||||
|
column: "RoleId",
|
||||||
|
principalTable: "AspNetRoles",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_IdentityUserRole<string>_ApplicationUser_UserId",
|
||||||
|
table: "AspNetUserRoles",
|
||||||
|
column: "UserId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_AccountBalance_ApplicationUser_UserId",
|
||||||
|
table: "AccountBalance",
|
||||||
|
column: "UserId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_BalanceImpact_AccountBalance_BalanceId",
|
||||||
|
table: "BalanceImpact",
|
||||||
|
column: "BalanceId",
|
||||||
|
principalTable: "AccountBalance",
|
||||||
|
principalColumn: "UserId",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_CommandLine_Estimate_EstimateId",
|
||||||
|
table: "CommandLine",
|
||||||
|
column: "EstimateId",
|
||||||
|
principalTable: "Estimate",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_BookQuery_ApplicationUser_ClientId",
|
||||||
|
table: "BookQuery",
|
||||||
|
column: "ClientId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_BookQuery_PerformerProfile_PerformerId",
|
||||||
|
table: "BookQuery",
|
||||||
|
column: "PerformerId",
|
||||||
|
principalTable: "PerformerProfile",
|
||||||
|
principalColumn: "PerformerId",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_CircleMember_Circle_CircleId",
|
||||||
|
table: "CircleMember",
|
||||||
|
column: "CircleId",
|
||||||
|
principalTable: "Circle",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_CircleMember_ApplicationUser_MemberId",
|
||||||
|
table: "CircleMember",
|
||||||
|
column: "MemberId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_PostTag_Blog_PostId",
|
||||||
|
table: "PostTag",
|
||||||
|
column: "PostId",
|
||||||
|
principalTable: "Blog",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_PerformerProfile_Activity_ActivityCode",
|
||||||
|
table: "PerformerProfile",
|
||||||
|
column: "ActivityCode",
|
||||||
|
principalTable: "Activity",
|
||||||
|
principalColumn: "Code",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_PerformerProfile_Location_OrganizationAddressId",
|
||||||
|
table: "PerformerProfile",
|
||||||
|
column: "OrganizationAddressId",
|
||||||
|
principalTable: "Location",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_PerformerProfile_ApplicationUser_PerformerId",
|
||||||
|
table: "PerformerProfile",
|
||||||
|
column: "PerformerId",
|
||||||
|
principalTable: "AspNetUsers",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -113,6 +113,40 @@ namespace Yavsc.Migrations
|
|||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Model.Chat.Connection", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("ConnectionID");
|
||||||
|
|
||||||
|
b.Property<string>("ApplicationUserId");
|
||||||
|
|
||||||
|
b.Property<bool>("Connected");
|
||||||
|
|
||||||
|
b.Property<string>("UserAgent");
|
||||||
|
|
||||||
|
b.HasKey("ConnectionID");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Model.ClientProviderInfo", b =>
|
||||||
|
{
|
||||||
|
b.Property<string>("UserId");
|
||||||
|
|
||||||
|
b.Property<string>("Avatar");
|
||||||
|
|
||||||
|
b.Property<long?>("BillingAddressId");
|
||||||
|
|
||||||
|
b.Property<string>("ChatHubConnectionId");
|
||||||
|
|
||||||
|
b.Property<string>("EMail");
|
||||||
|
|
||||||
|
b.Property<string>("Phone");
|
||||||
|
|
||||||
|
b.Property<int>("Rate");
|
||||||
|
|
||||||
|
b.Property<string>("UserName");
|
||||||
|
|
||||||
|
b.HasKey("UserId");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Yavsc.Models.AccountBalance", b =>
|
modelBuilder.Entity("Yavsc.Models.AccountBalance", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("UserId");
|
b.Property<string>("UserId");
|
||||||
@ -274,7 +308,8 @@ namespace Yavsc.Migrations
|
|||||||
b.Property<int>("Count");
|
b.Property<int>("Count");
|
||||||
|
|
||||||
b.Property<string>("Description")
|
b.Property<string>("Description")
|
||||||
.IsRequired();
|
.IsRequired()
|
||||||
|
.HasAnnotation("MaxLength", 512);
|
||||||
|
|
||||||
b.Property<long>("EstimateId");
|
b.Property<long>("EstimateId");
|
||||||
|
|
||||||
@ -620,6 +655,20 @@ namespace Yavsc.Migrations
|
|||||||
.HasForeignKey("UserId");
|
.HasForeignKey("UserId");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Model.Chat.Connection", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("ApplicationUserId");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Yavsc.Model.ClientProviderInfo", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Yavsc.Location")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("BillingAddressId");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Yavsc.Models.AccountBalance", b =>
|
modelBuilder.Entity("Yavsc.Models.AccountBalance", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("Yavsc.Models.ApplicationUser")
|
b.HasOne("Yavsc.Models.ApplicationUser")
|
||||||
|
@ -222,7 +222,7 @@ namespace Yavsc
|
|||||||
IOptions<SiteSettings> siteSettings,
|
IOptions<SiteSettings> siteSettings,
|
||||||
IOptions<RequestLocalizationOptions> localizationOptions,
|
IOptions<RequestLocalizationOptions> localizationOptions,
|
||||||
IOptions<OAuth2AppSettings> oauth2SettingsContainer,
|
IOptions<OAuth2AppSettings> oauth2SettingsContainer,
|
||||||
RoleManager<IdentityRole> _roleManager,
|
RoleManager<IdentityRole> roleManager,
|
||||||
ILoggerFactory loggerFactory)
|
ILoggerFactory loggerFactory)
|
||||||
{
|
{
|
||||||
Startup.UserFilesDirName = siteSettings.Value.UserFiles.DirName;
|
Startup.UserFilesDirName = siteSettings.Value.UserFiles.DirName;
|
||||||
@ -279,10 +279,10 @@ namespace Yavsc
|
|||||||
Constants.FrontOfficeGroupName,
|
Constants.FrontOfficeGroupName,
|
||||||
Constants.StarHunterGroupName
|
Constants.StarHunterGroupName
|
||||||
})
|
})
|
||||||
if (!await _roleManager.RoleExistsAsync(roleName))
|
if (!await roleManager.RoleExistsAsync(roleName))
|
||||||
{
|
{
|
||||||
var role = new IdentityRole { Name = roleName };
|
var role = new IdentityRole { Name = roleName };
|
||||||
var resultCreate = await _roleManager.CreateAsync(role);
|
var resultCreate = await roleManager.CreateAsync(role);
|
||||||
if (!resultCreate.Succeeded)
|
if (!resultCreate.Succeeded)
|
||||||
{
|
{
|
||||||
throw new Exception("The role '{roleName}' does not exist and could not be created.");
|
throw new Exception("The role '{roleName}' does not exist and could not be created.");
|
||||||
|
@ -37,9 +37,7 @@
|
|||||||
<ul id="discussion">
|
<ul id="discussion">
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<environment names="Development">
|
|
||||||
<button id="GetUsersBtn">Users</button>
|
|
||||||
</environment>
|
|
||||||
@section scripts {
|
@section scripts {
|
||||||
<!--Script references. -->
|
<!--Script references. -->
|
||||||
<!--The jQuery library is required and is referenced by default in _Layout.cshtml. -->
|
<!--The jQuery library is required and is referenced by default in _Layout.cshtml. -->
|
||||||
@ -131,7 +129,7 @@ $('#discussion').append('<li class="notif"><i>' + htmlEncode(tag)
|
|||||||
);
|
);
|
||||||
console.log(res);
|
console.log(res);
|
||||||
};
|
};
|
||||||
$("#GetUsersBtn").click(getUsers);
|
getUsers();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user