public FileItResponse AddUpdateUser(string user, string pass, FileItUser userobj) { var response = new FileItResponse(); using (var db = new FileItDataLayer.Models.SystemFileitEntities()) { var loginUser = db.USERS.FirstOrDefault(u => u.USERNAME.Equals(user, StringComparison.CurrentCultureIgnoreCase)); if (loginUser.Authenticate(pass)) { var userDb = db.USERS.FirstOrDefault(u => u.USERNAME == userobj.UserName); if (userDb == null) { userDb = new FileItDataLayer.Models.USER(); } if (userDb != null) { if (userobj.MergeWithDB(userDb)) { db.SaveChanges(); response.Success = true; } } } } return(response); }
private static string GenerateCabinetId(string cabinetName, ref string CABINETNAMEVALUE) { var result = ""; var bFound = false; int i = 0; var cabinetNameExists = false; //handle long names if (cabinetName.Length > 18) { cabinetName = cabinetName.Substring(0, 18); } using (var db = new SystemFileitEntities()) { cabinetNameExists = db.CABINETS.Any(c => c.CABINETNAME.Equals(cabinetName, StringComparison.CurrentCultureIgnoreCase)); while (!bFound && i < 99999) { var ticks = DateTime.Now.Ticks.ToString(); result = cabinetName.Replace(" ", "") + ticks.Substring(ticks.Length - 5, 5); bFound = !db.CABINETS.Any(c => c.CABINETID.Equals(result, StringComparison.CurrentCultureIgnoreCase)); if (cabinetNameExists && bFound) { CABINETNAMEVALUE += ticks.Substring(ticks.Length - 5, 5); } i++; } } return(result); }
public FileItResponse SetCabinetAccess(string user, string pass, string accesstype, string targetuser, string cabinetid, bool allowaccess) { var response = new FileItResponse(); using (var db = new FileItDataLayer.Models.SystemFileitEntities()) { var cabinet = db.CABINETS.FirstOrDefault(c => c.CABINETID == cabinetid); if (cabinet != null) { response.Success = cabinet.SetAccess(accesstype, targetuser, allowaccess); } } return(response); }
public Dictionary <string, string> GetCabinets(string user, string pass, string targetuser, bool allavailable) { var response = new Dictionary <string, string>(); using (var db = new FileItDataLayer.Models.SystemFileitEntities()) { var userObj = db.USERS.FirstOrDefault(u => u.USERNAME.Equals(user, StringComparison.CurrentCultureIgnoreCase)); var targetUserObj = db.USERS.FirstOrDefault(u => u.USERNAME.Equals(targetuser, StringComparison.CurrentCultureIgnoreCase)); if (userObj != null && targetUserObj != null && userObj.Authenticate(pass)) { response = allavailable ? targetUserObj.AvailableCabinets : targetUserObj.Cabinets; } } return(response); }
public FileItResponse SetUserPassword(string user, string pass, string targetuser, string newpass) { var response = new FileItResponse(); using (var db = new FileItDataLayer.Models.SystemFileitEntities()) { var userObj = db.USERS.FirstOrDefault(u => u.USERNAME.Equals(user, StringComparison.CurrentCultureIgnoreCase)); var targetUserObj = db.USERS.FirstOrDefault(u => u.USERNAME.Equals(targetuser, StringComparison.CurrentCultureIgnoreCase)); if (userObj != null && targetUserObj != null && userObj.Authenticate(pass)) { targetUserObj.PASS = newpass; db.SaveChanges(); response.Success = true; } } return(response); }
public FileItResponse UploadDocuments(string user, string pass, string cabinetId, DTOs.FileItDocument[] documents) { var response = new FileItResponse(); response.FileNameFileItID = new Dictionary <string, string>(); using (var db = new FileItDataLayer.Models.SystemFileitEntities()) { Debug("Uploading to cabinet: " + cabinetId + " " + documents.Length.ToString() + " docs"); var cab = db.CABINETS.Single(c => c.CABINETID.Equals(cabinetId, StringComparison.CurrentCultureIgnoreCase)); response.Success = true; documents.ToList().ForEach(d => { var filename = FileItDataLayer.Models.FileItDocument.GetNextFileName(); Debug("Got filename: " + filename); var doc = new FileItDataLayer.Models.FileItDocument() { FILENAME = filename, ARCHIVED = "N", DELETED = false, ImageBase64 = d.ImageBase64, EXTENSION = System.IO.Path.GetExtension(d.FileName).Replace(".", ""), INDEXEDON = DateTime.Now, PUBLIC = true, VERSION_NO = 1, VERSIONID = "", USERID = user, STATIONID = AppGlobal.StationID, BATCHNO = "BATCH", Indexes = d.IndexInformation }; if (!cab.Add(doc)) { Debug("Failed to add doc."); response.Success = false; } else { //TODO: retain the doc id and return response.FileNameFileItID.Add(d.FileName, filename); } }); } return(response); }
public FileItResponse Authenticate(string user, string pass) { var response = new FileItResponse(); using (var db = new FileItDataLayer.Models.SystemFileitEntities()) { var userObj = db.USERS.FirstOrDefault(u => u.USERNAME.Equals(user, StringComparison.CurrentCultureIgnoreCase)); if (userObj != null) { response.Success = userObj.Authenticate(pass); } else { response.Message = "User was not found"; } } return(response); }
public FileItResponse DeleteDocument(string user, string pass, string cabinetid, string documentId) { var response = new FileItResponse(); response.Documents = new List <DTOs.FileItDocument>(); using (var db = new FileItDataLayer.Models.SystemFileitEntities()) { var userObj = db.USERS.FirstOrDefault(u => u.USERNAME.Equals(user, StringComparison.CurrentCultureIgnoreCase)); if (userObj != null && userObj.Authenticate(pass)) { var cabinet = db.CABINETS.Single(c => c.CABINETID.Equals(cabinetid, StringComparison.CurrentCultureIgnoreCase)); response.Success = cabinet.DeleteDocument(documentId); } } return(response); }
public FileItResponse GetDocuments(string user, string pass, string cabinetid, List <DTOs.FileItDocumentLookup> lookups, bool includeThumbs) { var response = new FileItResponse(); response.Documents = new List <DTOs.FileItDocument>(); using (var db = new FileItDataLayer.Models.SystemFileitEntities()) { Debug("Getting user: "******"Getting cabinet" + cabinetid); var cabinet = db.CABINETS.Single(c => c.CABINETID.Equals(cabinetid, StringComparison.CurrentCultureIgnoreCase)); var template = new FileItTemplate(); template.ConvertFromTEMPLATE(cabinet.Template); Debug("Getting template" + cabinet.Template); response.Cabinet = new FileItCabinet() { CabinetId = cabinet.CABINETID, CabinetName = cabinet.CABINETNAME, Template = template }; var result = cabinet.GetDocuments(ConvertLookups(lookups), includeThumbs); result.ToList().ForEach(d => { response.Documents.Add(new DTOs.FileItDocument() { FileName = d.FILENAME, ImageBase64 = d.ImageBase64, WebImageBase64 = d.WebImageBase64, WebImageBase64Src = d.WebImageBase64Src, WebImageThumbBase64 = d.WebImageThumbBase64, WebImageThumbBase64Src = d.WebImageThumbBase64Src, IndexInformation = d.Indexes }); }); } } return(response); }
public FileItCabinet GetCabinet(string user, string pass, string cabinetId) { FileItCabinet response = null; using (var db = new FileItDataLayer.Models.SystemFileitEntities()) { var userObj = db.USERS.FirstOrDefault(u => u.USERNAME.Equals(user, StringComparison.CurrentCultureIgnoreCase)); if (userObj != null && userObj.Authenticate(pass)) { var cabinet = db.CABINETS.Single(c => c.CABINETID.Equals(cabinetId)); var def = new List <FileItTemplateDefinition>(); var template = new FileItTemplate(); template.ConvertFromTEMPLATE(cabinet.Template); response = new FileItCabinet() { CabinetId = cabinet.CABINETID, CabinetName = cabinet.CABINETNAME, Template = template }; } } return(response); }
public FileItResponse GetDocumentsById(string user, string pass, List <FileItDocumentIdLookup> documentIds, bool includeThumbs, bool includeDeleted) { var response = new FileItResponse(); response.Documents = new List <DTOs.FileItDocument>(); using (var db = new FileItDataLayer.Models.SystemFileitEntities()) { var userObj = db.USERS.FirstOrDefault(u => u.USERNAME.Equals(user, StringComparison.CurrentCultureIgnoreCase)); if (userObj != null && userObj.Authenticate(pass)) { Debug("Getting docs by id IN METHOD"); //load the lists var cabinets = new Dictionary <string, List <string> >(); var currentCabinet = ""; documentIds.ToList().ForEach(d => { if (!cabinets.ContainsKey(d.CabinetId)) { cabinets.Add(d.CabinetId, new List <string>()); } cabinets[d.CabinetId].Add(d.DocumentId); }); Debug("Looping Cabinets" + cabinets.Count.ToString()); cabinets.ToList().ForEach(c => { Debug("PROCESSING CABINET:" + c.Key + " ITEMS=" + c.Value.Count); Debug("******************"); currentCabinet = c.Key; var cabinet = db.CABINETS.Single(cab => cab.CABINETID.Equals(c.Key, StringComparison.CurrentCultureIgnoreCase)); if (response.Cabinet == null) { var template = new FileItTemplate(); template.ConvertFromTEMPLATE(cabinet.Template); response.Cabinet = new FileItCabinet() { CabinetId = cabinet.CABINETID, CabinetName = cabinet.CABINETNAME, Template = template }; } Debug("About to get documents: " + cabinet.CABINETNAME + " " + c.Value.Count); //get the documents cabinet.GetDocumentsByIds(c.Value, includeThumbs, includeDeleted).ToList().ForEach(doc => { Debug("in loop adding docs to response COUNT=" + response.Documents.Count); response.Documents.Add(new DTOs.FileItDocument() { FileName = doc.FILENAME, ImageBase64 = doc.ImageBase64, WebImageBase64 = doc.WebImageBase64, WebImageBase64Src = doc.WebImageBase64Src, WebImageThumbBase64 = doc.WebImageThumbBase64, WebImageThumbBase64Src = doc.WebImageThumbBase64Src, IndexInformation = doc.Indexes }); }); Debug("Responses loaded: " + response.Documents.Count()); response.Success = true; }); } } return(response); }
public static bool Create(string cabinetName, ref string cabinetId, string username, TEMPLATE template, string dataPath, string cabinetTemplatePath) { var result = false; var cabinetNameValidated = cabinetName; //get a valid cabinetId //validate cabinet name cabinetId = GenerateCabinetId(cabinetName, ref cabinetNameValidated); //create all folder paths var paths = new List <string>() { Path.Combine(FileItDataPath, cabinetId), Path.Combine(FileItDataPath, cabinetId, "oStore"), Path.Combine(FileItDataPath, cabinetId, "tStore"), Path.Combine(FileItDataPath, cabinetId, "wStore") }; paths.ToList().ForEach(p => { if (!Directory.Exists(p)) { Directory.CreateDirectory(p); } }); //copy the template to the correct location (rename in the process) var newCabinetFilePath = Path.Combine(FileItDataPath, cabinetId, cabinetId + ".FILEIT"); File.Copy(EmptyCabinetFilePath, newCabinetFilePath); using (var db = new SystemFileitEntities()) { if (!db.TEMPLATES.Any(t => t.TEMPLATENAME.Equals(template.TEMPLATENAME, StringComparison.CurrentCultureIgnoreCase))) { template.DESCRIPTION = "Auto Template From SVC"; template.ACCOUNT = "[Default System Account]"; db.TEMPLATES.Add(template); template.TemplateDefinitions.ToList().ForEach(td => { td.TEMPLATENAME = template.TEMPLATENAME; db.TEMPLATE_DEFINITION.Add(td); }); db.SaveChanges(); } } //add tables to the empty FILEIT db var newCabinet = new CABINET() { CABINETID = cabinetId, CABINETNAME = cabinetNameValidated, CABINETFULLPATH = newCabinetFilePath, ROOTPATH = Path.Combine(FileItDataPath, cabinetId), OSTOREPATH = Path.Combine(FileItDataPath, cabinetId, "oStore"), TSTOREPATH = Path.Combine(FileItDataPath, cabinetId, "tStore"), WSTOREPATH = Path.Combine(FileItDataPath, cabinetId, "wStore"), ACCOUNT = "Default System Account", ADMINISTRATOR = username, DESCRIPTION = "FileIt Service Created Cabinet", TEMPLATENAME = template.TEMPLATENAME }; newCabinet.CreateTables(); //create CABINET record using (var db = new SystemFileitEntities()) { db.CABINETS.Add(newCabinet); newCabinet.SetAccess("user", username, true); db.SaveChanges(); } result = true; return(result); }