public new SorentoLib.Ajax.Respons Process(SorentoLib.Session Session, string Fullname, string Method) { SorentoLib.Ajax.Respons result = new SorentoLib.Ajax.Respons (); SorentoLib.Ajax.Request request = new SorentoLib.Ajax.Request (Session.Request.QueryJar.Get ("data").Value); switch (Fullname.ToLower ()) { #region SorentoLib.User case "sorentolib.user": { switch (Method.ToLower ()) { // if (Session.AccessLevel < SorentoLib.Enums.Accesslevel.Administrator) throw new Exception (string.Format (sCMS.Strings.Exception.AjaxSessionPriviliges, "template.new")); case "new": { result.Add (new SorentoLib.User (request.getValue<string> ("username"), request.getValue<string> ("email"))); break; } case "load": { result.Add (SorentoLib.User.Load (request.getValue<Guid> ("id"))); break; } case "save": { request.getValue<SorentoLib.User> ("sorentolib.user").Save (); break; } case "delete": { SorentoLib.User.Delete (request.getValue<Guid> ("id")); break; } case "list": { result.Add (SorentoLib.User.List ()); break; } case "changepassword": { if (request.getValue<Guid> ("userid") == Session.User.Id) { if (request.xPathExists ("oldpassword")) { string oldpassword = request.getValue<string> ("oldpassword"); string newpassword = request.getValue<string> ("newpassword"); if (Session.User.Authenticate (oldpassword)) { Session.User.Password = newpassword; Session.User.Save (); } } } else { string newpassword = request.getValue<string> ("newpassword"); SorentoLib.User user = SorentoLib.User.Load (request.getValue<Guid> ("userid")); user.Password = newpassword; user.Save (); } // string oldpassword = SorentoLib.Tools.StringHelper.ASCIIBytesToString (SorentoLib.Services.Crypto.Decrypt (SorentoLib.Tools.StringHelper.HexStringToBytes (request.Key<string> ("oldpassword")))); // string newpassword = SorentoLib.Tools.StringHelper.ASCIIBytesToString (SorentoLib.Services.Crypto.Decrypt (SorentoLib.Tools.StringHelper.HexStringToBytes (request.Key<string> ("newpassword")))); // SorentoLib.User user = new SorentoLib.User (); // if (user.Load (new Guid (request.Data<string> ("id")))) // { // if (user.Authenticate (oldpassword)) // { // user.Password = newpassword; // // if (user.Save ()) // { // result.Data.Add ("success", "true"); // } // } // } break; } case "isusernameinuse": { if (request.xPathExists ("id")) { result.Add ("result", SorentoLib.User.IsUsernameInUse (request.getValue<string> ("username"), new Guid (request.Key<string>("id")))); // result.Add ("result", SorentoLib.User.IsUsernameInUse (request.Key<string>("username"), new Guid (request.Key<string>("id")))); } else { result.Add ("result", SorentoLib.User.IsUsernameInUse (request.getValue<string> ("username"))); // result.Add ("result", SorentoLib.User.IsUsernameInUse (request.Key<string>("username"))); } break; } case "isemailinuse": { if (request.xPathExists ("id")) { result.Add ("result", SorentoLib.User.IsEmailInUse (request.getValue<string>("email"), new Guid (request.getValue<string>("id")))); } else { result.Add ("result", SorentoLib.User.IsEmailInUse (request.getValue<string>("email"))); } break; } default: break; } break; } #endregion #region SorentoLib.Usergroup case "sorentolib.usergroup": { switch (Method.ToLower ()) { case "new": { result.Add (new SorentoLib.Usergroup ()); break; } case "load": { result.Add (SorentoLib.Usergroup.Load (request.getValue<Guid> ("id"))); break; } case "save": { request.getValue<SorentoLib.Usergroup> ("sorentolib.usergroup").Save (); break; } case "delete": { SorentoLib.Usergroup.Delete (request.getValue<Guid> ("id")); break; } case "list": { result.Add (SorentoLib.Usergroup.List ()); break; } case "accesslevels": { List<SorentoLib.Enums.Accesslevel> test1 = new List<SorentoLib.Enums.Accesslevel> (); foreach (SorentoLib.Enums.Accesslevel accesslevel in Enum.GetValues(typeof(SorentoLib.Enums.Accesslevel))) { // Hashtable test2 = new Hashtable (); // test2.Add ("name", accesslevel.ToString ()); // test2.Add ("value", (int)accesslevel); test1.Add (accesslevel); } result.Add (test1); break; } } break; } #endregion #region SorentoLib.Session case "sorentolib.session": { switch (Method.ToLower ()) { case "getcurrent": { // result.Data = Session.ToItem (); break; } case "logout": { result.Add (Session.Logout ()); break; } } break; } #endregion #region SorentoLib.Media case "sorentolib.media": { switch (Method.ToLower ()) { case "load": { SorentoLib.Media media = SorentoLib.Media.Load (new Guid (request.Key<string> ("id"))); // result.Data.Add ("id", media.Id); // result.Data.Add ("createtimestamp", media.CreateTimestamp); // result.Data.Add ("updatetimestamp", media.UpdateTimestamp); // result.Data.Add ("path", media.Path); // result.Data.Add ("directoryname", media.DirectoryName); // result.Data.Add ("filename", media.FileName); // result.Data.Add ("mimetype", media.Mimetype); // result.Data.Add ("size", media.Size); // result.Data.Add ("accesslevel", media.Accesslevel); // result.Data.Add ("status", media.Status); break; } } break; } #endregion #region SorentoLib.Transformation case "sorentolib.mediatransformation": { switch (Method.ToLower ()) { case "new": { MediaTransformation mediatransformation = MediaTransformation.FromAjaxRequest (request); mediatransformation.Save (); mediatransformation.ToAjaxRespons (result); break; } case "load": { MediaTransformation mediatransformation = MediaTransformation.Load (new Guid (request.Key<string> ("id"))); mediatransformation.ToAjaxRespons (result); break; } case "save": { MediaTransformation mediatransformation = MediaTransformation.FromAjaxRequest (request); mediatransformation.Save (); break; } case "delete": { MediaTransformation.Delete (new Guid (request.Key<string> ("id"))); break; } case "list": { List<Hashtable> mediatransformations = new List<Hashtable> (); foreach (SorentoLib.MediaTransformation mediatransformation in SorentoLib.MediaTransformation.List ()) { mediatransformations.Add (mediatransformation.ToAjaxItem ()); } // result.Data.Add ("mediatransformations", mediatransformations); break; } default: break; } break; } #endregion #region SorentoLib.Services.Config case "sorentolib.services.config": { switch (Method.ToLower ()) { case "get": { if (request.Data.ContainsKey ("keys")) { Hashtable data = new Hashtable (); foreach (string key in ((Hashtable)request.Data["keys"]).Keys) { data.Add (((Hashtable)request.Data["keys"])[key], SorentoLib.Services.Config.Get<string> (((Hashtable)request.Data["keys"])[key])); } // result.Data.Add ("data", data); } else { // result.Data.Add ("value", SorentoLib.Services.Config.Get<string> (request.Key<string> ("module"), request.Key<string> ("key"))); } break; } case "set": { if (request.Data.ContainsKey ("keys")) { foreach (string key in ((Hashtable)request.Data["keys"]).Keys) { SorentoLib.Services.Config.Set (key, ((Hashtable)request.Data["keys"])[key]); } } else { SorentoLib.Services.Config.Set (request.Key<string> ("module"), request.Key<string> ("key"), request.Key<string> ("value")); } break; } } break; } #endregion #region SorentoLib.Serivces.Snapshot case "sorentolib.services.snapshot": { switch (Method.ToLower ()) { case "new": { SorentoLib.Services.Snapshot.Take (); break; } case "load": { SorentoLib.Services.Snapshot snapshot = SorentoLib.Services.Snapshot.Load (request.Key<string> ("id")); snapshot.ToAjaxRespons (result); break; } case "develop": { SorentoLib.Services.Snapshot.Develop (SorentoLib.Services.Snapshot.Load (request.Key<string> ("id"))); break; } case "delete": { SorentoLib.Services.Snapshot.Delete (request.Key<string> ("id")); break; } case "list": { List<Hashtable> snapshots = new List<Hashtable> (); foreach (SorentoLib.Services.Snapshot snapshot in SorentoLib.Services.Snapshot.List ()) { snapshots.Add (snapshot.ToAjaxItem ()); } // result.Data.Add ("snapshots", snapshots); break; } default: break; } break; } #endregion } return result; }
public bool Process(SorentoLib.Session Session, string Fullname, string Method) { bool result = false; switch (Fullname.ToLower ()) { #region Session case "sorentolib.session": { switch (Method.ToLower ()) { case "login": { // return Session.Login (Session.Request.QueryJar.Get ("username").Value, SorentoLib.Tools.StringHelper.ASCIIBytesToString (SorentoLib.Services.Crypto.Decrypt (SorentoLib.Tools.StringHelper.HexStringToBytes (Session.Request.QueryJar.Get("password").Value)))); result = Session.Login (Session.Request.QueryJar.Get ("username").Value, Session.Request.QueryJar.Get("password").Value); break; } case "logout": { result = Session.Logout (); break; } } break; } #endregion #region Media case "sorentolib.media": { switch (Method.ToLower ()) { case "upload": { try { string path = Session.Request.QueryJar.Get ("path").Value; string filename = System.IO.Path.GetFileNameWithoutExtension (Session.Request.QueryJar.Get ("upload").Value).Replace ("%", "_"); string extension = System.IO.Path.GetExtension (Session.Request.QueryJar.Get ("upload").Value).ToLower (); path = path.Replace ("%%GUID%%", Guid.NewGuid ().ToString ()).Replace ("%%FILENAME%%", filename).Replace ("%%EXTENSION%%", extension); SorentoLib.Enums.MediaStatus status = SNDK.Convert.StringToEnum<SorentoLib.Enums.MediaStatus> (Session.Request.QueryJar.Get ("status").Value); string mediatransformations = Session.Request.QueryJar.Get ("mediatransformations").Value; string mimetypes = Session.Request.QueryJar.Get ("mimetypes").Value; string postuploadscript = Session.Request.QueryJar.Get ("postuploadscript").Value; if (mimetypes.Contains (Session.Request.QueryJar.Get ("upload").BinaryContentType)) { SorentoLib.Media media = new SorentoLib.Media (path, Session.Request.QueryJar.Get ("upload").BinaryData); media.Status = status; media.Save (); if (postuploadscript != string.Empty) { SorentoLib.MediaTransformation.Transform (media.DataPath, SorentoLib.Services.Config.Get<string> (SorentoLib.Enums.ConfigKey.core_pathscript) + postuploadscript); } if (mediatransformations != string.Empty) { foreach (string mediatransformationid in mediatransformations.Split (";".ToCharArray (), StringSplitOptions.RemoveEmptyEntries)) { MediaTransformation mediatransformation = MediaTransformation.Load (new Guid (mediatransformationid)); mediatransformation.Transform (media); } } Session.Page.Variables.Add ("mediaid", media.Id); Session.Page.Variables.Add ("mediasoftpath", media.Path); Console.WriteLine (media.Path); Session.Page.Variables.Add ("uploadsuccess", "true"); } else { Session.Page.Variables.Add ("uploadsuccess", "false"); Session.Page.Variables.Add ("cmderrormessage", Strings.ErrorMessage.MediaUploadMimeType); } result = true; } catch (Exception exception) { Session.Page.Variables.Add ("uploadsuccess", "false"); Session.Page.Variables.Add ("cmderrormessage", Strings.ErrorMessage.MediaUploadUnknown); SorentoLib.Services.Logging.LogDebug (string.Format (Strings.LogDebug.MediaUploadException, exception.ToString ())); } } break; } break; } #endregion // TODO: Implement Function[SorentoLib.User] #region User case "sorentolib.user": break; #endregion // TODO: Implement Function[SorentoLib.UserGroup] #region UserGroup case "sorentolib.usergroup": break; #endregion #region SorentoLib.Services.Snapshot case "sorentolib.services.snapshot": { switch (Method.ToLower ()) { case "upload": { if (Session.Request.QueryJar.Get ("upload").BinaryContentType == "application/zip") { FileStream filestream = File.Create (SorentoLib.Services.Config.Get<string> (SorentoLib.Enums.ConfigKey.snapshot_path) + Session.Request.QueryJar.Get ("upload").Value); BinaryWriter binarywriter = new BinaryWriter(filestream); binarywriter.Write(Session.Request.QueryJar.Get ("upload").BinaryData); binarywriter.Close(); filestream.Close(); Session.Page.Variables.Add ("uploadsuccess", "true"); } break; } } break; } #endregion } return result; }