public async Task <string> Save() { try { string PostObjectStr = await GetPostData(); PO_Result_Save PostObject = JsonConvert.DeserializeObject <PO_Result_Save>(PostObjectStr); DB = new DBSContext(); string Message = ""; if (!IsValid(PostObject, out Message)) { return(JsonConvert.SerializeObject(new { IsSuccess = false, Message = Message })); } Result _Result = 0 == PostObject.Id ? new Result() : DB.Results.Find(PostObject.Id); _Result.StudentId = PostObject.StudentId; _Result.SubjectId = PostObject.SubjectId; _Result.Mark = Math.Round(PostObject.Mark, 2); if (0 == PostObject.Id) { _Result.DateOfEntry = DateTime.Now; DB.Results.Add(_Result); } DB.SaveChanges(); return(JsonConvert.SerializeObject(new { IsSuccess = true })); } catch (Exception ex) { return(JsonConvert.SerializeObject(new { IsSuccess = false, Message = Common.GetError(ex) })); } }
private bool IsValid(PO_Result_Save PostObject, out string Message) { Message = ""; if (0 == PostObject.StudentId) { Message = "Student is Required!"; return(false); } if (0 == PostObject.SubjectId) { Message = "Subject is Required!"; return(false); } if (0 == PostObject.Mark) { Message = "Mark is Required!"; return(false); } if (PostObject.Mark < 0) { Message = "Mark can not be negetive!"; return(false); } if (PostObject.Mark > 100) { Message = "Mark can not be greater than 100!"; return(false); } if (0 == PostObject.Id && DB.Results.Where(x => x.StudentId == PostObject.StudentId && x.SubjectId == PostObject.SubjectId).Count() > 0) { Message = "Duplicate Exists!"; return(false); } if (PostObject.Id > 0 && DB.Results.Where(x => x.StudentId == PostObject.StudentId && x.SubjectId == PostObject.SubjectId && x.ResultId != PostObject.Id).Count() > 0) { Message = "Duplicate Exists!"; return(false); } return(true); }