public static void HandleUpdate(HttpRequest Request, HttpResponse Response) { ClientControlsReader r = new ClientControlsReader(Request.InputStream); byte[] buffer; FileStream inFile = null; try { Response.ClearContent(); ClientControlsWriter w = new ClientControlsWriter(Response.OutputStream); int updateManagerVersion = int.Parse(Request["updateManagerVersion"]); int controlReleaseVersion = int.Parse(Request["controlReleaseVersion"]); int processorArchitecture = int.Parse(Request["processorArchitecture"]); bool win95 = Request["platform"] == "95"; int winMajor = int.Parse(Request["winmajor"]); int winMinor = int.Parse(Request["winminor"]); string winCsd = Request["winCsd"]; string gdiplusVerString = Request["gdiplusver"].Trim(); bool hasGdiplus = gdiplusVerString != "0.0"; bool adminInstall = bool.Parse(Request["admin"]); bool hasMfc71 = bool.Parse(Request["mfc71"]); string[] files; if(!hasGdiplus) files = new string[] { "gdiplus", "minakortcontrols" }; else files = new string[] { "minakortcontrols" }; //Write version w.Write(updateManagerVersion); //Write response code w.Write(1); //Write response message string message = ""; w.WriteString(message); //Write file count w.Write(files.Length); //Write total file size int totalSize=0; foreach(string file in files) { string filePath = HttpContext.Current.Server.MapPath(Configuration.RootPath+ "public/" + file + ".dll"); totalSize += (int)new FileInfo(filePath).Length; } w.Write(totalSize); //Write files foreach(string file in files) { string clientFileName; if(file == "minakortcontrols") { w.Write((byte)(1)); clientFileName = "minakortcontrols.2.dll"; } else { w.Write((byte)(0)); clientFileName = "gdiplus.dll"; } //Write client file name w.WriteString(clientFileName); string filePath = HttpContext.Current.Server.MapPath(Configuration.RootPath+ "public/" + file + ".dll"); inFile = new FileStream(filePath, FileMode.Open, FileAccess.Read); w.Write((int)inFile.Length); buffer = new byte[inFile.Length]; inFile.Read(buffer,0,buffer.Length); w.Write(buffer); inFile.Close(); inFile = null; } } finally { if(inFile != null) inFile.Close(); Response.Flush(); Response.Close(); Response.End(); } }
static void HandleCreateCategory(HttpRequest Request, HttpResponse Response, Guid userId) { ClientControlsWriter w = new ClientControlsWriter(Response.OutputStream); //-1 = fail, 0=ok, 1=usersFailedAdding int result = -1; uint version = 1; Guid id = Guid.Empty; try { ClientControlsReader r = new ClientControlsReader(Request.InputStream); r.ReadTag(); version = r.ReadUInt32(); string name = r.ReadString(); string comment = null; id = new Guid(r.ReadBytes(16)); bool letFriendsAdd = r.ReadBoolean(); bool shareToFriends = r.ReadBoolean(); bool sendEmail = r.ReadBoolean(); ArrayList members = new ArrayList(); uint shareCount = r.ReadUInt32(); while(shareCount-- > 0) { Guid shareId = new Guid(r.ReadBytes(16)); members.Add(shareId); } if(id == Guid.Empty) { Guid homeCat = Database.GetMemberDetails(null, userId).HomeCategoryId; id = Database.GetSubCategory(userId, homeCat, name); if(id == Guid.Empty) Database.CreatePhotoCategory(userId, homeCat, name, comment, out id); } if(shareCount==0) result = 0; else { Guid groupId = Guid.Empty; Database.SetCategoryInheritPermissions(userId, id, false); groupId = Database.GetMemberGroup(userId, "$"+id.ToString()); if(groupId == Guid.Empty) //TODO: delete this group when we delete the category. Database.CreateMemberGroup(userId, Guid.Empty, "$"+id.ToString(), out groupId); try { Database.ClearGroupMembers(new GuidId(userId), groupId); foreach(Guid member in members) try { if(member == userId) continue; Database.AddUserToMemberGroup(userId, member, groupId, false, GroupMembershipLevel.Default, -1); } catch { int a = 3; } Database.SetGroupPermission(userId, groupId, id, letFriendsAdd?Permission.Add:Permission.Read,-1); result = 0; } catch { result = 1; } } } catch(Exception e) { string a = e.ToString(); } finally { w.Write(version); w.Write(result); w.Write(id.ToByteArray()); } }
public static void HandleUserLookup(HttpRequest Request, HttpResponse Response, Guid userId) { try { ClientControlsReader r = new ClientControlsReader(Request.InputStream); Response.ClearContent(); ClientControlsWriter w = new ClientControlsWriter(Response.OutputStream); w.Write(1); string query = Request["userquery"]; //Write result code if(query == null || query.Length == 0) { w.Write(-1); return; } else w.Write(0); query = "%"+query+"%"; ArrayList data = new ArrayList(); using(Db db = new Db()) { db.CommandText = @" SELECT id, fullNameClean as fullName, username, email FROM tMember WHERE fullName LIKE @q OR email LIKE @q OR username LIKE @q ORDER BY fullNameClean ASC "; db.AddParameter("@q", query); while(db.Read()) { UserInfo user = new UserInfo(); user.username = (string)db["username"]; user.id = (Guid)db["id"]; user.email = db["email"] as string; user.name = (string)db["fullName"]; data.Add(user); } } w.Write((int)data.Count); foreach(object o in data) { if(o is UserInfo) { w.Write((byte)0); UserInfo user = (UserInfo)o; w.Write(user.id.ToByteArray()); w.WriteString(user.username); w.WriteString(user.email); w.WriteString(user.name); } } int a = 3; } finally { Response.Flush(); Response.Close(); Response.End(); } }
static void HandleCreateCategory(HttpRequest Request, HttpResponse Response, Guid userId) { ClientControlsWriter w = new ClientControlsWriter(Response.OutputStream); //-1 = fail, 0=ok, 1=usersFailedAdding int result = -1; uint version = 1; Guid id = Guid.Empty; try { ClientControlsReader r = new ClientControlsReader(Request.InputStream); r.ReadTag(); version = r.ReadUInt32(); string name = r.ReadString(); string comment = null; id = new Guid(r.ReadBytes(16)); bool letFriendsAdd = r.ReadBoolean(); bool shareToFriends = r.ReadBoolean(); bool sendEmail = r.ReadBoolean(); ArrayList members = new ArrayList(); uint shareCount = r.ReadUInt32(); while (shareCount-- > 0) { Guid shareId = new Guid(r.ReadBytes(16)); members.Add(shareId); } if (id == Guid.Empty) { Guid homeCat = Database.GetMemberDetails(null, userId).HomeCategoryId; id = Database.GetSubCategory(userId, homeCat, name); if (id == Guid.Empty) { Database.CreatePhotoCategory(userId, homeCat, name, comment, out id); } } if (shareCount == 0) { result = 0; } else { Guid groupId = Guid.Empty; Database.SetCategoryInheritPermissions(userId, id, false); groupId = Database.GetMemberGroup(userId, "$" + id.ToString()); if (groupId == Guid.Empty) { //TODO: delete this group when we delete the category. Database.CreateMemberGroup(userId, Guid.Empty, "$" + id.ToString(), out groupId); } try { Database.ClearGroupMembers(new GuidId(userId), groupId); foreach (Guid member in members) { try { if (member == userId) { continue; } Database.AddUserToMemberGroup(userId, member, groupId, false, GroupMembershipLevel.Default, -1); } catch { int a = 3; } } Database.SetGroupPermission(userId, groupId, id, letFriendsAdd?Permission.Add:Permission.Read, -1); result = 0; } catch { result = 1; } } } catch (Exception e) { string a = e.ToString(); } finally { w.Write(version); w.Write(result); w.Write(id.ToByteArray()); } }
public static void HandleUserLookup(HttpRequest Request, HttpResponse Response, Guid userId) { try { ClientControlsReader r = new ClientControlsReader(Request.InputStream); Response.ClearContent(); ClientControlsWriter w = new ClientControlsWriter(Response.OutputStream); w.Write(1); string query = Request["userquery"]; //Write result code if (query == null || query.Length == 0) { w.Write(-1); return; } else { w.Write(0); } query = "%" + query + "%"; ArrayList data = new ArrayList(); using (Db db = new Db()) { db.CommandText = @" SELECT id, fullNameClean as fullName, username, email FROM tMember WHERE fullName LIKE @q OR email LIKE @q OR username LIKE @q ORDER BY fullNameClean ASC " ; db.AddParameter("@q", query); while (db.Read()) { UserInfo user = new UserInfo(); user.username = (string)db["username"]; user.id = (Guid)db["id"]; user.email = db["email"] as string; user.name = (string)db["fullName"]; data.Add(user); } } w.Write((int)data.Count); foreach (object o in data) { if (o is UserInfo) { w.Write((byte)0); UserInfo user = (UserInfo)o; w.Write(user.id.ToByteArray()); w.WriteString(user.username); w.WriteString(user.email); w.WriteString(user.name); } } int a = 3; } finally { Response.Flush(); Response.Close(); Response.End(); } }
public static void HandleUpdate(HttpRequest Request, HttpResponse Response) { ClientControlsReader r = new ClientControlsReader(Request.InputStream); byte[] buffer; FileStream inFile = null; try { Response.ClearContent(); ClientControlsWriter w = new ClientControlsWriter(Response.OutputStream); int updateManagerVersion = int.Parse(Request["updateManagerVersion"]); int controlReleaseVersion = int.Parse(Request["controlReleaseVersion"]); int processorArchitecture = int.Parse(Request["processorArchitecture"]); bool win95 = Request["platform"] == "95"; int winMajor = int.Parse(Request["winmajor"]); int winMinor = int.Parse(Request["winminor"]); string winCsd = Request["winCsd"]; string gdiplusVerString = Request["gdiplusver"].Trim(); bool hasGdiplus = gdiplusVerString != "0.0"; bool adminInstall = bool.Parse(Request["admin"]); bool hasMfc71 = bool.Parse(Request["mfc71"]); string[] files; if (!hasGdiplus) { files = new string[] { "gdiplus", "minakortcontrols" } } ; else { files = new string[] { "minakortcontrols" } }; //Write version w.Write(updateManagerVersion); //Write response code w.Write(1); //Write response message string message = ""; w.WriteString(message); //Write file count w.Write(files.Length); //Write total file size int totalSize = 0; foreach (string file in files) { string filePath = HttpContext.Current.Server.MapPath(Configuration.RootPath + "public/" + file + ".dll"); totalSize += (int)new FileInfo(filePath).Length; } w.Write(totalSize); //Write files foreach (string file in files) { string clientFileName; if (file == "minakortcontrols") { w.Write((byte)(1)); clientFileName = "minakortcontrols.2.dll"; } else { w.Write((byte)(0)); clientFileName = "gdiplus.dll"; } //Write client file name w.WriteString(clientFileName); string filePath = HttpContext.Current.Server.MapPath(Configuration.RootPath + "public/" + file + ".dll"); inFile = new FileStream(filePath, FileMode.Open, FileAccess.Read); w.Write((int)inFile.Length); buffer = new byte[inFile.Length]; inFile.Read(buffer, 0, buffer.Length); w.Write(buffer); inFile.Close(); inFile = null; } } finally { if (inFile != null) { inFile.Close(); } Response.Flush(); Response.Close(); Response.End(); } }