fixe l'accès web au chat privé
This commit is contained in:
@ -8,6 +8,10 @@ using Yavsc.ViewModels.Account;
|
||||
using System.Security.Claims;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Yavsc.Models.Auth;
|
||||
using System.Collections.Generic;
|
||||
using static Yavsc.ChatHub;
|
||||
using Microsoft.Data.Entity;
|
||||
using System.Linq;
|
||||
|
||||
namespace Yavsc.WebApi.Controllers
|
||||
{
|
||||
@ -159,6 +163,8 @@ namespace Yavsc.WebApi.Controllers
|
||||
}
|
||||
return Ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
40
Yavsc/ApiControllers/ChatApiController.cs
Normal file
40
Yavsc/ApiControllers/ChatApiController.cs
Normal file
@ -0,0 +1,40 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.AspNet.Authorization;
|
||||
using Microsoft.AspNet.Mvc;
|
||||
using Microsoft.Data.Entity;
|
||||
|
||||
namespace Yavsc.Controllers
|
||||
{
|
||||
using Models;
|
||||
using ViewModels.Chat;
|
||||
[Route("api/chat")]
|
||||
public class ChatApiController : Controller
|
||||
{
|
||||
|
||||
[HttpGet("users")]
|
||||
public List<ChatUserInfo> GetUserList()
|
||||
{
|
||||
using (var db = new ApplicationDbContext()) {
|
||||
|
||||
var cxsQuery = db.Connections.Include(c=>c.Owner).GroupBy( c => c.ApplicationUserId );
|
||||
|
||||
List<ChatUserInfo> result = new List<ChatUserInfo>();
|
||||
|
||||
foreach (var g in cxsQuery) {
|
||||
|
||||
var uid = g.Key;
|
||||
var cxs = g.ToList();
|
||||
var user = cxs.First().Owner;
|
||||
|
||||
result.Add(new ChatUserInfo { UserName = user.UserName,
|
||||
UserId = user.Id, Avatar = user.Avatar, Connections = cxs } );
|
||||
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -8,7 +8,6 @@ using Yavsc.Models;
|
||||
using Microsoft.AspNet.Identity;
|
||||
using System.Linq;
|
||||
using System.Security.Claims;
|
||||
using Microsoft.Data.Entity;
|
||||
|
||||
namespace Yavsc.Controllers
|
||||
{
|
||||
|
@ -22,12 +22,14 @@ using System.Threading.Tasks;
|
||||
using Microsoft.AspNet.SignalR;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Yavsc.Models;
|
||||
using Yavsc.Model.Chat;
|
||||
using System;
|
||||
using Microsoft.Data.Entity;
|
||||
|
||||
namespace Yavsc
|
||||
{
|
||||
using Models;
|
||||
using Model.Chat;
|
||||
using ViewModels.Chat;
|
||||
|
||||
public class ChatHub : Hub
|
||||
{
|
||||
@ -52,7 +54,7 @@ namespace Yavsc
|
||||
user.Connections = new List<Connection>();
|
||||
user.Connections.Add(new Connection
|
||||
{
|
||||
ConnectionID = Context.ConnectionId,
|
||||
ConnectionId = Context.ConnectionId,
|
||||
UserAgent = Context.Request.Headers["User-Agent"],
|
||||
Connected = true
|
||||
});
|
||||
@ -65,27 +67,23 @@ namespace Yavsc
|
||||
|
||||
Clients.Group("authenticated").notify("connected", Context.ConnectionId, userName);
|
||||
|
||||
list.Add(new UserInfo
|
||||
{
|
||||
ConnectionId = Context.ConnectionId,
|
||||
UserName = userName
|
||||
});
|
||||
|
||||
return base.OnConnected();
|
||||
}
|
||||
|
||||
public override Task OnDisconnected(bool stopCalled)
|
||||
{
|
||||
|
||||
string userName = Context.User?.Identity.Name;
|
||||
Clients.Group("authenticated").notify("disconnected", Context.ConnectionId, userName);
|
||||
if (userName != null)
|
||||
{
|
||||
using (var db = new ApplicationDbContext()) {
|
||||
var user = db.Users.Single(u => u.UserName == userName);
|
||||
var cx = user.Connections.SingleOrDefault(c => c.ConnectionID == Context.ConnectionId);
|
||||
var cx = db.Connections.SingleOrDefault(c => c.ConnectionId == Context.ConnectionId);
|
||||
if (cx != null)
|
||||
{
|
||||
if (stopCalled)
|
||||
{
|
||||
var user = db.Users.Single(u => u.UserName == userName);
|
||||
user.Connections.Remove(cx);
|
||||
}
|
||||
else
|
||||
@ -96,8 +94,7 @@ namespace Yavsc
|
||||
}
|
||||
}
|
||||
}
|
||||
Clients.Group("authenticated").notify("disconnected", Context.ConnectionId, userName);
|
||||
list.Remove(list.Single(c => c.ConnectionId == Context.ConnectionId));
|
||||
|
||||
return base.OnDisconnected(stopCalled);
|
||||
}
|
||||
|
||||
@ -108,14 +105,19 @@ namespace Yavsc
|
||||
{
|
||||
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 (user.Connections==null) user.Connections = new List<Connection>();
|
||||
|
||||
|
||||
var cx = user.Connections.SingleOrDefault(c => c.ConnectionId == Context.ConnectionId);
|
||||
if (cx != null)
|
||||
{
|
||||
cx.Connected = true;
|
||||
db.SaveChanges();
|
||||
}
|
||||
}
|
||||
else cx = new Connection { ConnectionId = Context.ConnectionId,
|
||||
UserAgent = Context.Request.Headers["User-Agent"],
|
||||
Connected = true };
|
||||
}
|
||||
}
|
||||
|
||||
@ -142,24 +144,38 @@ namespace Yavsc
|
||||
var cli = Clients.Client(connectionId);
|
||||
cli.addPV(sender, message);
|
||||
}
|
||||
public class UserInfo
|
||||
public void Abort()
|
||||
{
|
||||
|
||||
public string ConnectionId { get; set; }
|
||||
|
||||
public string UserId { get; set; }
|
||||
|
||||
public string UserName { get; set; }
|
||||
|
||||
public string Avatar { get; set; }
|
||||
|
||||
using (var db = new ApplicationDbContext()) {
|
||||
var cx = db.Connections.SingleOrDefault(c=>c.ConnectionId == Context.ConnectionId);
|
||||
if (cx!=null) {
|
||||
db.Connections.Remove(cx);
|
||||
db.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static List<UserInfo> list = new List<UserInfo>();
|
||||
[Authorize]
|
||||
public IEnumerable<UserInfo> GetUserList()
|
||||
public List<ChatUserInfo> GetUserList()
|
||||
{
|
||||
return list;
|
||||
using (var db = new ApplicationDbContext()) {
|
||||
|
||||
var cxsQuery = db.Connections.Include(c=>c.Owner).GroupBy( c => c.ApplicationUserId );
|
||||
|
||||
List<ChatUserInfo> result = new List<ChatUserInfo>();
|
||||
|
||||
foreach (var g in cxsQuery) {
|
||||
|
||||
var uid = g.Key;
|
||||
var cxs = g.ToList();
|
||||
var user = cxs.First().Owner;
|
||||
|
||||
result.Add(new ChatUserInfo { UserName = user.UserName,
|
||||
UserId = user.Id, Avatar = user.Avatar, Connections = cxs } );
|
||||
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
804
Yavsc/Migrations/20161102132129_fixCxOwner.Designer.cs
generated
Normal file
804
Yavsc/Migrations/20161102132129_fixCxOwner.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("20161102132129_fixCxOwner")]
|
||||
partial class fixCxOwner
|
||||
{
|
||||
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");
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
273
Yavsc/Migrations/20161102132129_fixCxOwner.cs
Normal file
273
Yavsc/Migrations/20161102132129_fixCxOwner.cs
Normal file
@ -0,0 +1,273 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.Data.Entity.Migrations;
|
||||
|
||||
namespace Yavsc.Migrations
|
||||
{
|
||||
public partial class fixCxOwner : 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.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.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);
|
||||
}
|
||||
}
|
||||
}
|
804
Yavsc/Migrations/20161102133253_fix2CxOwner.Designer.cs
generated
Normal file
804
Yavsc/Migrations/20161102133253_fix2CxOwner.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("20161102133253_fix2CxOwner")]
|
||||
partial class fix2CxOwner
|
||||
{
|
||||
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");
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
281
Yavsc/Migrations/20161102133253_fix2CxOwner.cs
Normal file
281
Yavsc/Migrations/20161102133253_fix2CxOwner.cs
Normal file
@ -0,0 +1,281 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.Data.Entity.Migrations;
|
||||
|
||||
namespace Yavsc.Migrations
|
||||
{
|
||||
public partial class fix2CxOwner : 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.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);
|
||||
migrationBuilder.RenameColumn(
|
||||
name: "ConnectionID",
|
||||
table: "Connection",
|
||||
newName: "ConnectionId");
|
||||
}
|
||||
|
||||
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.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);
|
||||
migrationBuilder.RenameColumn(
|
||||
name: "ConnectionId",
|
||||
table: "Connection",
|
||||
newName: "ConnectionID");
|
||||
}
|
||||
}
|
||||
}
|
@ -115,7 +115,7 @@ namespace Yavsc.Migrations
|
||||
|
||||
modelBuilder.Entity("Yavsc.Model.Chat.Connection", b =>
|
||||
{
|
||||
b.Property<string>("ConnectionID");
|
||||
b.Property<string>("ConnectionId");
|
||||
|
||||
b.Property<string>("ApplicationUserId");
|
||||
|
||||
@ -123,7 +123,7 @@ namespace Yavsc.Migrations
|
||||
|
||||
b.Property<string>("UserAgent");
|
||||
|
||||
b.HasKey("ConnectionID");
|
||||
b.HasKey("ConnectionId");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Yavsc.Model.ClientProviderInfo", b =>
|
||||
|
@ -12,7 +12,8 @@ using Yavsc.Models.OAuth;
|
||||
using Yavsc.Models.Workflow;
|
||||
using Yavsc.Models.Identity;
|
||||
using Yavsc.Models.Market;
|
||||
using Yavsc.Model;
|
||||
using Yavsc.Model;
|
||||
using Yavsc.Model.Chat;
|
||||
|
||||
namespace Yavsc.Models
|
||||
{
|
||||
@ -30,6 +31,7 @@ namespace Yavsc.Models
|
||||
builder.Entity<Blog>().Property(x=>x.Posted).HasDefaultValueSql("LOCALTIMESTAMP");
|
||||
builder.Entity<GoogleCloudMobileDeclaration>().Property(x=>x.DeclarationDate).HasDefaultValueSql("LOCALTIMESTAMP");
|
||||
builder.Entity<PostTag>().HasKey(x=>new { x.PostId, x.TagId});
|
||||
builder.Entity<ApplicationUser>().HasMany<Connection>( c=>c.Connections );
|
||||
}
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
@ -184,6 +186,9 @@ namespace Yavsc.Models
|
||||
|
||||
public DbSet<Contact> Contacts { get; set; }
|
||||
|
||||
public DbSet<ClientProviderInfo> ClientProviderInfo { get; set; }
|
||||
public DbSet<ClientProviderInfo> ClientProviderInfo { get; set; }
|
||||
|
||||
public DbSet<Connection> Connections { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,20 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using Newtonsoft.Json;
|
||||
using Yavsc.Models;
|
||||
|
||||
namespace Yavsc.Model.Chat
|
||||
{
|
||||
|
||||
public class Connection
|
||||
{
|
||||
public string ConnectionID { get; set; }
|
||||
[JsonIgnore]
|
||||
public string ApplicationUserId { get; set; }
|
||||
[ForeignKey("ApplicationUserId"),JsonIgnore]
|
||||
public virtual ApplicationUser Owner { get; set; }
|
||||
|
||||
[Key]
|
||||
public string ConnectionId { get; set; }
|
||||
public string UserAgent { get; set; }
|
||||
public bool Connected { get; set; }
|
||||
}
|
||||
|
@ -54,7 +54,8 @@ namespace Yavsc.Models
|
||||
[InverseProperty("DeviceOwner")]
|
||||
public virtual List<GoogleCloudMobileDeclaration> Devices { get; set; }
|
||||
|
||||
public ICollection<Connection> Connections { get; set; }
|
||||
[InverseProperty("Owner")]
|
||||
public virtual List<Connection> Connections { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
@ -317,6 +317,9 @@
|
||||
<data name="Search"><value>Chercher</value></data>
|
||||
<data name="Set"><value>Positioner</value></data>
|
||||
<data name="Select a Google calendar"><value>Selectioner un calendrier Google</value></data>
|
||||
<data name="Send"><value>Envoyer</value></data>
|
||||
<data name="Send a private message"><value>Envoyer un message privé</value></data>
|
||||
<data name="Send a public message"><value>Envoyer un message publique</value></data>
|
||||
<data name="SiteSkills"><value>Talents/Compétences/Spécialités gérés sur ce site</value></data>
|
||||
<data name="Skill"><value>Compétence</value></data>
|
||||
<data name="Skills"><value>Talents/Compétences/Spécialités</value></data>
|
||||
@ -339,7 +342,7 @@
|
||||
<data name="ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailableThis"><value>Selon son calendier Google, ce perstataire pourrait ne pas être disponible ce</value></data>
|
||||
<data name="ThisPerformerDoesntGiveAccessToHisCalendar"><value>Ce prestataire n'a pas mis de calendrier à disposition.</value></data>
|
||||
<data name="Title"><value>Titre</value></data>
|
||||
<data name="to"><value>pour</value></data>
|
||||
<data name="to"><value>à</value></data>
|
||||
<data name="TwoFactorAuthentication"><value>Double identification</value></data>
|
||||
<data name="Unitary_cost"><value>Coût unitaire</value></data>
|
||||
<data name="Unregister"><value>Se désinscrire</value></data>
|
||||
|
@ -31,9 +31,9 @@ namespace Yavsc
|
||||
|
||||
public partial class Startup
|
||||
{
|
||||
public static string ConnectionString { get; private set; }
|
||||
public static string Authority { get; private set; }
|
||||
public static string Audience { get; private set; }
|
||||
public static string ConnectionString { get; private set; }
|
||||
public static string Authority { get; private set; }
|
||||
public static string Audience { get; private set; }
|
||||
private static ILogger logger;
|
||||
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
|
||||
{
|
||||
@ -75,11 +75,11 @@ namespace Yavsc
|
||||
var oauthFacebookSettings = Configuration.GetSection("Authentication").GetSection("Facebook");
|
||||
services.Configure<FacebookOAuth2AppSettings>(oauthFacebookSettings);
|
||||
|
||||
/* services.Configure<MvcOptions>(options =>
|
||||
{
|
||||
options.Filters.Add(new ProducesAttribute("text/x-tex"));
|
||||
options.Filters.Add(new ProducesAttribute("text/pdf"));
|
||||
});*/
|
||||
/* services.Configure<MvcOptions>(options =>
|
||||
{
|
||||
options.Filters.Add(new ProducesAttribute("text/x-tex"));
|
||||
options.Filters.Add(new ProducesAttribute("text/pdf"));
|
||||
});*/
|
||||
|
||||
services.Configure<RequestLocalizationOptions>(options =>
|
||||
{
|
||||
@ -114,15 +114,15 @@ namespace Yavsc
|
||||
//}));
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
services.Add(ServiceDescriptor.Singleton(typeof(IOptions<SiteSettings>), typeof(OptionsManager<SiteSettings>)));
|
||||
services.Add(ServiceDescriptor.Singleton(typeof(IOptions<SmtpSettings>), typeof(OptionsManager<SmtpSettings>)));
|
||||
services.Add(ServiceDescriptor.Singleton(typeof(IOptions<GoogleAuthSettings>), typeof(OptionsManager<GoogleAuthSettings>)));
|
||||
services.Add(ServiceDescriptor.Singleton(typeof(IOptions<CompanyInfoSettings>), typeof(OptionsManager<CompanyInfoSettings>)));
|
||||
|
||||
// DataProtection
|
||||
ConfigureProtectionServices(services);
|
||||
// DataProtection
|
||||
ConfigureProtectionServices(services);
|
||||
|
||||
// Add framework services.
|
||||
services.AddEntityFramework()
|
||||
@ -130,7 +130,7 @@ namespace Yavsc
|
||||
.AddDbContext<ApplicationDbContext>(options => options.UseNpgsql(ConnectionString))
|
||||
;
|
||||
|
||||
ConfigureOAuthServices(services);
|
||||
ConfigureOAuthServices(services);
|
||||
|
||||
services.AddCors(
|
||||
/*
|
||||
@ -273,42 +273,52 @@ namespace Yavsc
|
||||
else throw ex;
|
||||
}
|
||||
}
|
||||
Task.Run(async ()=>{
|
||||
Task.Run(async () =>
|
||||
{
|
||||
// Creates roles when they don't exist
|
||||
foreach (string roleName in new string[] {Constants.AdminGroupName,
|
||||
Constants.StarGroupName, Constants.PerformerGroupName,
|
||||
Constants.StarGroupName, Constants.PerformerGroupName,
|
||||
Constants.FrontOfficeGroupName,
|
||||
Constants.StarHunterGroupName
|
||||
})
|
||||
if (!await roleManager.RoleExistsAsync(roleName))
|
||||
{
|
||||
var role = new IdentityRole { Name = roleName };
|
||||
var resultCreate = await roleManager.CreateAsync(role);
|
||||
if (!resultCreate.Succeeded)
|
||||
if (!await roleManager.RoleExistsAsync(roleName))
|
||||
{
|
||||
var role = new IdentityRole { Name = roleName };
|
||||
var resultCreate = await roleManager.CreateAsync(role);
|
||||
if (!resultCreate.Succeeded)
|
||||
{
|
||||
throw new Exception("The role '{roleName}' does not exist and could not be created.");
|
||||
}
|
||||
}
|
||||
// FIXME In a perfect world, connection records should be dropped at shutdown, but:
|
||||
|
||||
using (var db = new ApplicationDbContext())
|
||||
{
|
||||
throw new Exception("The role '{roleName}' does not exist and could not be created.");
|
||||
foreach (var c in db.Connections)
|
||||
db.Connections.Remove(c);
|
||||
db.SaveChanges();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
app.UseIISPlatformHandler(options =>
|
||||
{
|
||||
options.AuthenticationDescriptions.Clear();
|
||||
options.AutomaticAuthentication = false;
|
||||
});
|
||||
|
||||
|
||||
Authority = siteSettings.Value.Authority;
|
||||
Audience = siteSettings.Value.Audience;
|
||||
|
||||
ConfigureOAuthApp(app,siteSettings.Value);
|
||||
|
||||
app.UseSignalR("/api/signalr");
|
||||
|
||||
ConfigureFileServerApp(app,siteSettings.Value,env);
|
||||
ConfigureOAuthApp(app, siteSettings.Value);
|
||||
|
||||
app.UseWebSockets();
|
||||
|
||||
app.UseRequestLocalization(localizationOptions.Value, (RequestCulture) new RequestCulture((string)"en"));
|
||||
app.UseSignalR("/api/signalr");
|
||||
|
||||
ConfigureFileServerApp(app, siteSettings.Value, env);
|
||||
|
||||
app.UseRequestLocalization(localizationOptions.Value, (RequestCulture)new RequestCulture((string)"en"));
|
||||
|
||||
app.UseMvc(routes =>
|
||||
{
|
||||
@ -317,7 +327,7 @@ namespace Yavsc
|
||||
template: "{controller=Home}/{action=Index}/{id?}");
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// Entry point for the application.
|
||||
public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run<Startup>(args);
|
||||
}
|
||||
|
17
Yavsc/ViewModels/Chat/ChatUserInfo.cs
Normal file
17
Yavsc/ViewModels/Chat/ChatUserInfo.cs
Normal file
@ -0,0 +1,17 @@
|
||||
using System.Collections.Generic;
|
||||
using Yavsc.Model.Chat;
|
||||
|
||||
namespace Yavsc.ViewModels.Chat {
|
||||
public class ChatUserInfo
|
||||
{
|
||||
|
||||
public List<Connection> Connections { get; set; }
|
||||
|
||||
public string UserId { get; set; }
|
||||
|
||||
public string UserName { get; set; }
|
||||
|
||||
public string Avatar { get; set; }
|
||||
|
||||
}
|
||||
}
|
@ -110,7 +110,7 @@ $(document).ready(function(){
|
||||
<div class="form-horizontal">
|
||||
<h4>@SR["Fill in your book query"]</h4>
|
||||
<hr />
|
||||
|
||||
<div asp-validation-summary="ValidationSummary.All" class="text-danger"></div>
|
||||
<div class="form-group" has-feedback>
|
||||
@Html.ValidationSummary()
|
||||
<fieldset>
|
||||
|
@ -20,22 +20,22 @@
|
||||
|
||||
</style>
|
||||
<div class="container">
|
||||
<input type="text" id="message" />
|
||||
<input type="button" id="sendmessage" value="Send" />
|
||||
|
||||
<input type="hidden" id="displayname" />
|
||||
@if (ViewBag.Contacts!=null) {
|
||||
<select id="to" >
|
||||
|
||||
@foreach (var contact in ViewBag.Contacts) {
|
||||
<option>@contact.UserName</option>
|
||||
}
|
||||
</select>
|
||||
}
|
||||
<ul id="userlist">
|
||||
|
||||
<ul id="userlist" style="float:right;">
|
||||
</ul>
|
||||
<ul id="discussion">
|
||||
</ul>
|
||||
<input type="text" id="message" />
|
||||
<div style="display: inline-block;">
|
||||
<input type="button" id="sendmessage" value="@SR["Send"]" />
|
||||
@if (ViewBag.IsAuthenticated) {
|
||||
<br/>
|
||||
<input type="button" id="sendpv" value="@SR["Send a private message"] @SR["to"]" />
|
||||
<select id="to" />
|
||||
<input type="button" id="btnDebug" Value="RUL"/>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@section scripts {
|
||||
@ -47,11 +47,26 @@
|
||||
<script src="~/api/signalr/hubs"></script>
|
||||
<!--SignalR script to update the chat page and send messages.-->
|
||||
<script>
|
||||
|
||||
$(function () {
|
||||
var getUsers = function() {
|
||||
$('#userlist').empty();
|
||||
$('#to').empty();
|
||||
chat.server.getUserList().done(
|
||||
function(users) {
|
||||
$.each(users, function () {
|
||||
var user = this;
|
||||
document.userList[user.UserId]=user;
|
||||
$('#userlist').append('<li class="user">' + htmlEncode(user.UserName) + '</li>');
|
||||
|
||||
$('#to').append('<option value="'+user.UserId+'">'+user.UserName+'</option>');
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
document.userList = {};
|
||||
// Reference the auto-generated proxy for the hub.
|
||||
var chat = $.connection.chatHub;
|
||||
// Create a function that the hub can call back to display messages.
|
||||
@ -111,33 +126,33 @@ $('#discussion').append('<li class="notif"><i>' + htmlEncode(tag)
|
||||
});
|
||||
$('#sendpv').click(function () {
|
||||
// Call the Send method on the hub.
|
||||
chat.server.sendPV($('#to').val(), $('#message').val());
|
||||
var user = document.userList[$('#to').val()];
|
||||
$.each(user.Connections,function () {
|
||||
chat.server.sendPV( this.ConnectionId, $('#message').val());
|
||||
});
|
||||
// Clear text box and reset focus for next comment.
|
||||
$('#message').val('').focus();
|
||||
});
|
||||
|
||||
var getUsers = function() {
|
||||
$('#userlist').empty();
|
||||
chat.server.getUserList().done(
|
||||
function(users) {
|
||||
$.each(users, function () {
|
||||
var user = this;
|
||||
$('#userlist').append('<li class="user"><i>' + htmlEncode(user.UserName)
|
||||
+ '</i> ' + htmlEncode(user.ConnectionId) + '</li>');
|
||||
});
|
||||
}
|
||||
);
|
||||
console.log(res);
|
||||
};
|
||||
|
||||
getUsers();
|
||||
});
|
||||
|
||||
|
||||
|
||||
$("#btnDebug").click(getUsers);
|
||||
$.connection.hub.disconnected(function () {
|
||||
setTimeout(function () {
|
||||
$.connection.hub.start().done(function () {
|
||||
$("#mySignalRConnectionIdHidden").val($.connection.hub.id);
|
||||
}, 3000); // Re-start connection after 3 seconds
|
||||
});
|
||||
});
|
||||
$( window ).unload(function() { chat.server.abort(); });
|
||||
});
|
||||
// This optional function html-encodes messages for display in the page.
|
||||
|
||||
function htmlEncode(value) {
|
||||
var encodedValue = $('<div />').text(value).html();
|
||||
return encodedValue;
|
||||
}
|
||||
|
||||
</script>
|
||||
}
|
||||
|
@ -17,11 +17,15 @@ Da road to the hell
|
||||
✔ Chat privé (coté serveur) @done (October 13th 2016, 16:27)
|
||||
✔ Accès mobile au salon public @done (October 13th 2016, 16:27)
|
||||
☐ Accès Web au chat privé
|
||||
☐ Accès mobile au chat privé
|
||||
✔ Accès mobile au chat privé @done (November 3rd 2016, 11:15)
|
||||
|
||||
## Jalon 2
|
||||
|
||||
☐ Quota fs utilisateur
|
||||
☐ Droit au message privé, spécifié par le destinataire
|
||||
et/ou par accréditation administrative, à un utilisateur spécifié, ou
|
||||
à un cercle ou à un groupe, de manière temporaire ou définitive, par une plage de temps spécifié
|
||||
ou par la validité d'une demande de devis ou une intervention en cours ou récente ou à venir
|
||||
☐ Sécurisation des formulaires
|
||||
(à base de clés anti-forge, limitation en taille de chaines de caratères)
|
||||
☐ web
|
||||
@ -30,15 +34,24 @@ Da road to the hell
|
||||
☐ Paiement client d'un approvisionnement pour une demande de prestation définie
|
||||
☐ Login Twitter
|
||||
☐ Notifications et Twits de blogs, d'entées d'artiste, de success stories
|
||||
☐ Restrictions d'accès au chat privé
|
||||
☐ Monétarisations
|
||||
☐ Support multi-lanque de l'app mobile
|
||||
☐ Paiement client du reste de la prestation
|
||||
|
||||
## Jalon 3
|
||||
|
||||
☐ Saisie du devis sur commande générique
|
||||
☐ Saisie d'un devis à destination d'un invité [email]
|
||||
☐ Saisie du devis sur commande générique: les commandes sont des projets utilisateur associés
|
||||
à une liste de formulaire de prise de commande auprès de services que le producteur peut spécialiser,
|
||||
par l'ajout de groupes de champs de saisie complètement définis :
|
||||
☐ Chaque champ possède:
|
||||
☐ Un label
|
||||
☐ Un type pour la valeur
|
||||
☐ Un type de controle
|
||||
☐ Une liste de validateurs
|
||||
☐ Une invitation à la saisie
|
||||
|
||||
☐ Chaque champ apparait dans un groupe de champ possèdant un titre
|
||||
☐ Saisie d'un devis à destination d'un invité (envoi par email, contact local)
|
||||
☐ Paiement d'Arrhes
|
||||
|
||||
## Jalon 4
|
||||
|
Reference in New Issue
Block a user