async void AddNewSubject(object sender, EventArgs e)
        {
            if (!CheckEntries())
            {
                return;
            }
            Subject newSubject = new Subject();

            newSubject.Name            = subjectName;
            newSubject.NumberOfSession = int.Parse(numberOfSessions);

            try
            {
                var response = await RestClient.Post(path + "/" + App.teacherId, newSubject);

                if (response.StatusCode == HttpStatusCode.BadRequest)
                {
                    DisplayErrorAlert("Email already exist!");
                }
                else if (response.StatusCode == HttpStatusCode.Created)
                {
                    var data = await response.Content.ReadAsStringAsync();

                    var responseJson = JObject.Parse(data);
                    var subjectId    = responseJson["subjectId"].ToString();
                    //For each subject we are creating a list of students
                    await RecMan.RegisterStudents(students, subjectId);

                    App.Current.MainPage = new NavigationPage(new MainPage());
                }
                else
                {
                    DisplayErrorAlert("Something went wrong!");
                }
                System.Diagnostics.Debug.WriteLine(response);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
                DisplayErrorAlert("Something went wrong!");
            }



            //TODO move this to when the user press on his profile in student page
            //System.Diagnostics.Debug.WriteLine("hi ali");

            //var mediaFile = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
            //{
            //    Directory = "Sample",
            //    Name = "test.jpg"
            //});
            //if (mediaFile == null)
            //    return;
            //var userName = await RecMan.ExecuteFindSimilarFaceCommandAsync("alialsaeedi191", mediaFile);
        }
Пример #2
0
        public void Create(Guid?id             = null, Guid?createdBy = null, DateTime?createdOn = null, DateTime?loggedOn = null, int minutes = 0, bool isBillable = true, string body = "",
                           List <string> scope = null, List <Guid> relatedRecords = null)
        {
            #region << Init >>
            if (id == null)
            {
                id = Guid.NewGuid();
            }

            if (createdBy == null)
            {
                createdBy = SystemIds.SystemUserId;
            }

            if (createdOn == null)
            {
                createdOn = DateTime.UtcNow;
            }

            if (loggedOn == null)
            {
                loggedOn = DateTime.UtcNow;
            }
            #endregion

            try
            {
                var record = new EntityRecord();
                record["id"]                = id;
                record["created_by"]        = createdBy;
                record["created_on"]        = createdOn;
                record["logged_on"]         = loggedOn.ConvertAppDateToUtc();
                record["body"]              = body;
                record["minutes"]           = minutes;
                record["is_billable"]       = isBillable;
                record["l_scope"]           = JsonConvert.SerializeObject(scope);
                record["l_related_records"] = JsonConvert.SerializeObject(relatedRecords);

                var response = RecMan.CreateRecord("timelog", record);
                if (!response.Success)
                {
                    throw new ValidationException(response.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #3
0
        public List <UserFile> GetFilesList(string type = "", string search = "", int sort = 1, int page = 1, int pageSize = 30)
        {
            //sort -> 1(created on), 2(filename alpha)
            //type -> image,document,audio,video
            var skipCount = (page - 1) * pageSize;


            var listSorts = new List <QuerySortObject>();

            switch (sort)
            {
            case 1:
                listSorts.Add(new QuerySortObject("created_on", QuerySortType.Descending));
                break;

            case 2:
                listSorts.Add(new QuerySortObject("name", QuerySortType.Ascending));
                break;
            }

            var filters = new List <QueryObject>();

            if (!String.IsNullOrWhiteSpace(search))
            {
                filters.Add(EntityQuery.QueryOR(EntityQuery.QueryContains("name", search), EntityQuery.QueryContains("alt", search), EntityQuery.QueryContains("caption", search)));
            }
            if (!String.IsNullOrWhiteSpace(type))
            {
                filters.Add(EntityQuery.QueryContains("type", type));
            }
            var filterQuery = EntityQuery.QueryAND(filters.ToArray());

            EntityQuery   query    = new EntityQuery("user_file", UserFile.GetQueryColumns(), filterQuery, listSorts.ToArray(), skipCount, pageSize);
            QueryResponse response = RecMan.Find(query);

            if (!response.Success)
            {
                throw new Exception(response.Message);
            }

            var files = response.Object.Data.MapTo <UserFile>();

            return(files);
        }
Пример #4
0
        public void Create(Guid?id             = null, Guid?createdBy = null, DateTime?createdOn = null, string body = "", Guid?parentId = null,
                           List <string> scope = null, List <Guid> relatedRecords = null)
        {
            #region << Init >>
            if (id == null)
            {
                id = Guid.NewGuid();
            }

            if (createdBy == null)
            {
                createdBy = SystemIds.SystemUserId;
            }

            if (createdOn == null)
            {
                createdOn = DateTime.UtcNow;
            }
            #endregion

            try
            {
                var record = new EntityRecord();
                record["id"]                = id;
                record["created_by"]        = createdBy;
                record["created_on"]        = createdOn;
                record["body"]              = body;
                record["parent_id"]         = parentId;
                record["l_scope"]           = JsonConvert.SerializeObject(scope);
                record["l_related_records"] = JsonConvert.SerializeObject(relatedRecords);

                var response = RecMan.CreateRecord("comment", record);
                if (!response.Success)
                {
                    throw new ValidationException(response.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #5
0
        public UserFile CreateUserFile(string path = "", string alt = "", string caption = "")
        {
            var userFileRecord = new EntityRecord();

            if (path.StartsWith("/fs"))
            {
                path = path.Substring(3);
            }
            var tempFile = Fs.Find(path);

            if (tempFile == null)
            {
                throw new Exception("File not found on that path");
            }
            var newFileId = Guid.NewGuid();

            userFileRecord["id"]      = newFileId;
            userFileRecord["alt"]     = alt;
            userFileRecord["caption"] = caption;
            var fileKilobytes = Math.Round(((decimal)tempFile.GetBytes().Length / 1024), 2);

            userFileRecord["size"] = fileKilobytes;
            userFileRecord["name"] = Path.GetFileName(path);
            var fileExtension = Path.GetExtension(path);
            var mimeType      = MimeMapping.GetMimeMapping(path);

            if (mimeType.StartsWith("image"))
            {
                var dimensionsRecord = Helpers.GetImageDimension(tempFile.GetBytes());
                userFileRecord["width"]  = (decimal)dimensionsRecord["width"];
                userFileRecord["height"] = (decimal)dimensionsRecord["height"];
                userFileRecord["type"]   = "image";
            }
            else if (mimeType.StartsWith("video"))
            {
                userFileRecord["type"] = "video";
            }
            else if (mimeType.StartsWith("audio"))
            {
                userFileRecord["type"] = "audio";
            }
            else if (fileExtension == ".doc" || fileExtension == ".docx" || fileExtension == ".odt" || fileExtension == ".rtf" ||
                     fileExtension == ".txt" || fileExtension == ".pdf" || fileExtension == ".html" || fileExtension == ".htm" || fileExtension == ".ppt" ||
                     fileExtension == ".pptx" || fileExtension == ".xls" || fileExtension == ".xlsx" || fileExtension == ".ods" || fileExtension == ".odp")
            {
                userFileRecord["type"] = "document";
            }
            else
            {
                userFileRecord["type"] = "other";
            }

            var newFilePath = $"/file/{newFileId}/{Path.GetFileName(path)}";

            using (DbConnection con = DbContext.Current.CreateConnection())
            {
                con.BeginTransaction();
                try
                {
                    var file = Fs.Move(path, newFilePath, false);
                    if (file == null)
                    {
                        throw new Exception("File move from temp folder failed");
                    }

                    userFileRecord["path"] = newFilePath;
                    var response = RecMan.CreateRecord("user_file", userFileRecord);
                    if (!response.Success)
                    {
                        throw new Exception(response.Message);
                    }

                    userFileRecord = response.Object.Data.First();
                    con.CommitTransaction();
                }
                catch (Exception ex)
                {
                    con.RollbackTransaction();
                    throw ex;
                }
            }
            return(userFileRecord.MapTo <UserFile>());
        }