public static DocInfo CreateNewDoc(string strDocName) { DocInfo objDoc = new DocInfo() { DocId = Guid.NewGuid().ToString(), DocName = strDocName, Status = "CREATED" }; lsDocs.Add(objDoc); DBStore.AddStatus(objDoc.DocId, "CREATED", "New Document Created."); return(objDoc); }
public static void UpdateDocStatus(string strDocId, string strStatus, string strMessage) { foreach (DocInfo objDI in lsDocs) { if (objDI.DocId == strDocId) { if (strStatus == "") { strStatus = objDI.Status; } objDI.Status = strStatus; DBStore.AddStatus(strDocId, strStatus, strMessage); } } }
private static void Track(HttpContext context) { string strDocId = context.Request["DocId"]; string strFileName = DBStore.GetDocName(strDocId); string strBody = ""; string strStatus = "0"; try { using (var receiveStream = context.Request.InputStream) { using (var readStream = new StreamReader(receiveStream)) { strBody = readStream.ReadToEnd(); } } DBStore.AddStatus(strDocId, "WebEditor.Track", strBody); } catch (Exception e) { throw new HttpException((int)HttpStatusCode.BadRequest, e.Message); } if (string.IsNullOrEmpty(strBody)) { return; } JavaScriptSerializer jss = new JavaScriptSerializer(); Dictionary <string, object> dicResponse = jss.Deserialize <Dictionary <string, object> >(strBody); string strDocKey = ""; int intStatusVal = 0; TrackerStatus enumStatus = TrackerStatus.NotFound; string strFileDownloadUrl = ""; string strUser = ""; if (dicResponse.ContainsKey("key")) { strDocKey = dicResponse["key"].ToString(); } if (dicResponse.ContainsKey("status")) { intStatusVal = Convert.ToInt32(dicResponse["status"]); enumStatus = (TrackerStatus)intStatusVal; } if (dicResponse.ContainsKey("url")) { strFileDownloadUrl = dicResponse["url"].ToString(); } if (dicResponse.ContainsKey("users")) { strUser = (dicResponse["users"] as ArrayList)[0].ToString(); } DBStore.UpdateDocStatus(strDocId, "", "WebEditor.Track: " + enumStatus + " : " + intStatusVal.ToString()); DBStore.AddStatus(strDocId, "strDocKey", strDocKey); DBStore.AddStatus(strDocId, "strUser", strUser); DBStore.AddStatus(strDocId, "strFileDownloadUrl", strFileDownloadUrl); switch (enumStatus) { case TrackerStatus.MustSave: HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strFileDownloadUrl); try { var storagePath = Sample.StoragePath(strFileName); if (DBStore.GetDocStatus(strDocId) == "OkClicked" || DBStore.GetDocStatus(strDocId) == "EDITOR_CLOSED") { //--- This is the document stream sent from Document Service using (var stream = req.GetResponse().GetResponseStream()) { if (stream == null) { throw new Exception("stream is null"); } const int bufferSize = 4096; using (var fs = File.Open(storagePath, FileMode.Create)) { var buffer = new byte[bufferSize]; int readed; while ((readed = stream.Read(buffer, 0, bufferSize)) != 0) { fs.Write(buffer, 0, readed); } } } DBStore.UpdateDocStatus(strDocId, enumStatus.ToString(), "WebEditor.Track: Saved Path: " + storagePath); DBStore.AddStatus(strDocId, "Command Service", "Start"); string strRes = ServiceConverter.GetCommandService("drop", strDocKey, "", (new List <string>() { strUser })); DBStore.AddStatus(strDocId, "Command Service", strRes); } else { DBStore.UpdateDocStatus(strDocId, enumStatus.ToString(), "WebEditor.Track: NOT SAVED"); } } catch (Exception ex) { DBStore.AddStatus(strDocId, "Exception", ex.ToString()); } break; case TrackerStatus.Corrupted: case TrackerStatus.ForceSave: case TrackerStatus.Closed: break; case TrackerStatus.Editing: //--- Check User and Key combination and set the status of document strStatus = "0"; break; } context.Response.Write("{\"error\":" + strStatus + "}"); }