/// <summary> /// Operation for changing files /// </summary> /// <returns>Status of normal ending working with file</returns> protected bool FileChange() { IFileOperation file = storage; while (true) { // Get request if (!Provider.GetRequest(out RequestData userData)) { continue; } if (!CheckSessionID(userData.SessionId)) { return(false); } switch ((FileOperation)userData.Operation) { case FileOperation.Read: SendResponse(file.ReadFile()); break; case FileOperation.Write: SendResponse(file.WriteToFile(userData.Property)); break; case FileOperation.Edit: #region Edit var edit = file.ReadFile(); SendResponse(edit); if (edit.Code == 0) { // Get confirm request while (!Provider.GetRequest(out userData)) { } if (!CheckSessionID(userData.SessionId)) { return(false); } // Commit changes if (userData.Operation == 3) { SendResponse(storage.ChangeFile(userData.Property)); } else { SendResponse(new ResponseData(0, "Canceled")); } } #endregion break; case FileOperation.Exit: SendResponse(file.CloseFile()); return(true); default: Provider.SendResponse(new ResponseData(SessionID, StatusCode.BadRequest, "Invalid operation")); Logger.LogAll("Invalid operation"); break; } } }