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 FileItResponse CreateCabinet(string user, string pass, FileItTemplate template, string cabinetName)
        {
            var response  = new FileItResponse();
            var cabinetId = "";

            try
            {
                response.Success = CABINET.Create(cabinetName, ref cabinetId, user, template.ConvertToTemplate(cabinetId), FileItDataPath, FileItEmptyCabinetPath);
                response.Cabinet = new FileItCabinet()
                {
                    CabinetId   = cabinetId,
                    CabinetName = cabinetName
                };
            }
            catch (Exception err)
            {
                response.Message = err.ToString();
            }
            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);
        }