public static ExtendedProperty CreateProperty(string defName, string value, BXC_MasterControlEntities entity, int userId) { var prop = new ExtendedProperty {User_Id = userId}; var name = (from n in entity.PropertyNames where n.Name == defName select n).FirstOrDefault(); if (name != null) { prop.PropertyNames_Id = name.Id; } else { var n = new PropertyName {Name = defName}; entity.AddObject("PropertyNames", n); entity.SaveChanges(); prop.PropertyNames_Id = n.Id; } var propValue = (from v in entity.PropertyValues where v.Value == value select v).FirstOrDefault(); if (propValue != null) { prop.PropertyValues_Id = propValue.Id; } else { var v = new PropertyValue {Value = value}; entity.AddObject("Propertyvalues", v); entity.SaveChanges(); prop.PropertyValues_Id = v.Id; } return prop; }
private bool RegisterUser(User user) { using (var model = new BXC_MasterControlEntities(new Uri("http://odata.bxc.mepcontent.com/userservice.svc"))) { var alreadyused = (from u in model.Users where u.UserName == user.Email select u).FirstOrDefault(); if (alreadyused == null) { var newUser = new UserService.User {UserName = user.Email, Password = user.Password}; model.AddObject("Users", newUser); model.SaveChanges(); //TODO: encrypt password model.AddObject("ExtendedProperties", CreateProperty("FirstName", user.FirstName, model, newUser.Id)); model.AddObject("ExtendedProperties", CreateProperty("LastName", user.LastName, model, newUser.Id)); model.AddObject("ExtendedProperties", CreateProperty("PhoneNumber", user.PhoneNumber, model, newUser.Id)); model.AddObject("ExtendedProperties", CreateProperty("Company", user.Company, model, newUser.Id)); if(!String.IsNullOrWhiteSpace(Alias)) { model.AddObject("ExtendedProperties", CreateProperty("Alias", Alias, model, newUser.Id)); } model.SaveChanges(); } else { return false; } return true; } }
private bool CheckLogin(string email, string password) { using(var model = new BXC_MasterControlEntities(new Uri("http://odata.bxc.mepcontent.com/userservice.svc"))) { var user = (from u in model.Users where u.UserName == email && u.Password == password select u).FirstOrDefault(); if (user == null) return false; var alias = user.ExtendedProperties.FirstOrDefault(p => p.PropertyName.Name == "Alias"); if(alias == null && !String.IsNullOrWhiteSpace(Alias)) { user.ExtendedProperties.Add(CreateProperty("Alias", Alias, model, user.Id)); model.SaveChanges(); } return true; } }
private bool CheckIfUserNameAliasExits(string alias) { using (var model = new BXC_MasterControlEntities(new Uri("http://odata.bxc.mepcontent.com/userservice.svc"))) { var property = (from p in model.ExtendedProperties where p.PropertyName.Name == "Alias" && p.PropertyValue.Value==alias select p).FirstOrDefault(); return property != null; } }
public static string CreateDownloadPackage(object ids) { var itemIds = (Dictionary<string, object>) ids; var guid = Guid.NewGuid().ToString(); var id = Int32.Parse(itemIds["0"].ToString()); try { var zipFilePath = String.Format("{0}\\{1}\\", ConfigurationManager.AppSettings["DownloadDirectory"], guid); var zipFileName = String.Format("{0}{1}", zipFilePath, "package.zip"); using (var container = new BXC_ContentModelEntities()) { var family = (from c in container.Items where c.Id == id select new { FileName = c.AutodeskFile.Name, c.AutodeskFile.TypeCatalogHeader, TypeCatalogLine = c.TypeCatalogEntry, Owner = c.AutodeskFile.MC_OwnerId }).FirstOrDefault(); if (family != null) { var filePath = String.Format("{0}\\{1}.rfa", ConfigurationManager.AppSettings["ContentDirectory"], family.FileName); AddtoZip(filePath, family.FileName, zipFileName, zipFilePath); } if (family != null && !String.IsNullOrWhiteSpace(family.TypeCatalogHeader)) { var typeCatalogPath = String.Format("{0}\\{1}\\{2}", ConfigurationManager.AppSettings["DownloadDirectory"], guid, family.FileName + ".txt"); var sw = File.CreateText(typeCatalogPath); { sw.WriteLine(family.TypeCatalogHeader); foreach (var i in itemIds.Select(id2 => Int32.Parse(id2.Value.ToString())).Select(iD => (from t in container.Items where t.Id == id select t.TypeCatalogEntry). FirstOrDefault())) { sw.WriteLine(i); } } sw.Close(); AddtoZip(typeCatalogPath, family.FileName + ".txt", zipFileName, zipFilePath); } } try { using (var container = new BXC_MasterControlEntities()) { foreach (var id2 in itemIds) { var download = new Download {DateTime = DateTime.Now, Content_Id = id2.ToString()}; var libName = HttpContext.Current.Session["LibraryName"].ToString(); var lib = (from l in container.Libraries where l.Name == libName select l).FirstOrDefault(); download.Library = lib; var uname = HttpContext.Current.Session["UserName"].ToString(); download.User = (from u in container.Users where u.UserName == uname select u).FirstOrDefault(); container.SaveChanges(); } } } catch { } return guid; } catch (Exception ex) { return ex.Message; } }
// ReSharper restore InconsistentNaming // ReSharper disable InconsistentNaming protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString["r"] != null) { Session["Revit"] = 1; } if (Session["User"] != null && Session["Pass"] != null) { var userName = Session["User"].ToString(); var pass = Session["Pass"].ToString(); windowLogin.VisibleOnPageLoad = !UserLogin(userName, pass, false); } else if (Request.QueryString["u"] != null) { //if username sent then from Revit App var windowsLogin = Request.QueryString["u"]; Session["Alias"] = windowsLogin; windowLogin.VisibleOnPageLoad = !UserLogin(windowsLogin, string.Empty, true); } else { //user entered from web browser - show login panel windowLogin.VisibleOnPageLoad = true; } } if (Session["UpdateLibrary"] != null) { var userName = Session["User"].ToString(); using (var masterControl = new BXC_MasterControlEntities()) { var lib = (from l in masterControl.ExtendedProperties where l.User.UserName == userName & l.PropertyName.Name == "CurrentLibrary" select l.PropertyValue.Value).FirstOrDefault(); if (lib != null) { LibraryName = lib; LoadData(true, true); Session["UpdateLibrary"] = null; } } } }
public bool UserLogin(string userName, string password, bool aliasLogin) { Session["Filters"] = null; using (var masterControl = new BXC_MasterControlEntities()) { if (aliasLogin) { var aliasUser = (from u in masterControl.Users where u.ExtendedProperties.Any( p => p.PropertyName.Name == "Alias" && p.PropertyValue.Value == userName) select u).FirstOrDefault(); if (aliasUser != null) { Session["User"] = aliasUser.UserName; Session["Pass"] = aliasUser.Password; //user Exists - load current library var lib = (from l in masterControl.ExtendedProperties where l.User.UserName == aliasUser.UserName & l.PropertyName.Name == "CurrentLibrary" select l.PropertyValue.Value).FirstOrDefault(); if (lib != null) { LibraryName = lib; LoadData(true, true); //FUTURE TODO: Load recent downloads and favorites } return true; } } else { var user = (from u in masterControl.Users where u.UserName == userName select u.UserName).FirstOrDefault(); if (!String.IsNullOrWhiteSpace(user)) { Session["User"] = user; Session["Pass"] = password; var pass = (from u in masterControl.Users where u.UserName == userName select u.Password). FirstOrDefault(); if (password == pass) { //user Exists - load current library var lib = (from l in masterControl.ExtendedProperties where l.User.UserName == user & l.PropertyName.Name == "CurrentLibrary" select l.PropertyValue.Value).FirstOrDefault(); if (lib != null) { LibraryName = lib; LoadData(true, true); //FUTURE TODO: Load recent downloads and favorites } return true; } } } } return false; }