00001 using System;
00002 using System.Collections.Generic;
00003 using System.Text;
00004 using Shared;
00005 using System.Windows.Forms;
00006
00007 namespace Client
00008 {
00009 class ReconnectHandler : IAccessHandler
00010 {
00011 #region IAccessHandler Members
00012
00013 private RMIClient client;
00014 private IAccessHandler accessHandler;
00015
00016 public ReconnectHandler(RMIClient client, IAccessHandler accesshandler)
00017 {
00018 this.client = client;
00019 this.accessHandler = accesshandler;
00020 }
00021
00022 public PersonInfo GetPersonInfo(string username)
00023 {
00024 try
00025 {
00026 return accessHandler.GetPersonInfo(username);
00027 }
00028 catch
00029 {
00030 accessHandler = client.Connect();
00031 if (accessHandler != null)
00032 return accessHandler.GetPersonInfo(username);
00033
00034 MessageBox.Show("Unable to Reconnect"); throw;
00035 }
00036 }
00037
00038 public Messages Login(string user, string password)
00039 {
00040 try
00041 {
00042 return accessHandler.Login(user, password) ;
00043 }
00044 catch
00045 {
00046 accessHandler = client.Connect();
00047 if (accessHandler != null)
00048 return accessHandler.Login(user, password);
00049 MessageBox.Show("Unable to Reconnect"); throw;
00050 }
00051 }
00052
00053 public Messages Register(string user, string password, string name, string department, string email)
00054 {
00055 try
00056 {
00057 return accessHandler.Register(user, password, name, department, email);
00058 }
00059 catch
00060 {
00061 accessHandler = client.Connect();
00062 if (accessHandler != null)
00063 return accessHandler.Register(user, password, name, department, email);
00064 MessageBox.Show("Unable to Reconnect"); throw;
00065 }
00066 }
00067
00068 public string WhoAmI
00069 {
00070 get {
00071 try
00072 {
00073 return accessHandler.WhoAmI;
00074 }
00075 catch
00076 {
00077 accessHandler = client.Connect();
00078 if (accessHandler != null)
00079 return accessHandler.WhoAmI;
00080 MessageBox.Show("Unable to Reconnect"); throw;
00081 }
00082 }
00083 }
00084
00085 public Messages UpdatePerson(PersonInfo info)
00086 {
00087 try
00088 {
00089 return accessHandler.UpdatePerson(info);
00090 }
00091 catch
00092 {
00093 accessHandler = client.Connect();
00094 if (accessHandler != null)
00095 return accessHandler.UpdatePerson(info);
00096 MessageBox.Show("Unable to Reconnect"); throw;
00097 }
00098 }
00099
00100 public LiteratureInfo[] ListLiterature()
00101 {
00102 try
00103 {
00104 return accessHandler.ListLiterature();
00105 }
00106 catch
00107 {
00108 accessHandler = client.Connect();
00109 if (accessHandler != null)
00110 return accessHandler.ListLiterature();
00111 MessageBox.Show("Unable to Reconnect"); throw;
00112 }
00113 }
00114
00115 public LiteratureInfo GetLiteratureInfo(int id)
00116 {
00117 try
00118 {
00119 return accessHandler.GetLiteratureInfo(id);
00120 }
00121 catch
00122 {
00123 accessHandler = client.Connect();
00124 if (accessHandler != null)
00125 return accessHandler.GetLiteratureInfo(id);
00126 MessageBox.Show("Unable to Reconnect"); throw;
00127 }
00128 }
00129
00130 public Messages CreateLiterature(out int id, LiteratureInfo info)
00131 {
00132 try
00133 {
00134 return accessHandler.CreateLiterature(out id, info);
00135 }
00136 catch
00137 {
00138 accessHandler = client.Connect();
00139 if (accessHandler != null)
00140 return accessHandler.CreateLiterature(out id, info);
00141 MessageBox.Show("Unable to Reconnect"); throw;
00142 }
00143 }
00144
00145 public Messages UpdateLiterature(LiteratureInfo info)
00146 {
00147 try
00148 {
00149 return accessHandler.UpdateLiterature(info);
00150 }
00151 catch
00152 {
00153 accessHandler = client.Connect();
00154 if (accessHandler != null)
00155 return accessHandler.UpdateLiterature(info);
00156 MessageBox.Show("Unable to Reconnect"); throw;
00157 }
00158 }
00159
00160 public Messages DeleteLiterature(int id)
00161 {
00162 try
00163 {
00164 return accessHandler.DeleteLiterature(id);
00165 }
00166 catch
00167 {
00168 accessHandler = client.Connect();
00169 if (accessHandler != null)
00170 return accessHandler.DeleteLiterature(id);
00171 MessageBox.Show("Unable to Reconnect"); throw;
00172 }
00173 }
00174
00175 public RoleInfo[] GetRoles(int id)
00176 {
00177 try
00178 {
00179 return accessHandler.GetRoles(id);
00180 }
00181 catch
00182 {
00183 accessHandler = client.Connect();
00184 if (accessHandler != null)
00185 return accessHandler.GetRoles(id);
00186 MessageBox.Show("Unable to Reconnect"); throw;
00187 }
00188 }
00189
00190 public ProjectInfo[] GetUsersProjects(string username)
00191 {
00192 try
00193 {
00194 return accessHandler.GetUsersProjects(username);
00195 }
00196 catch
00197 {
00198 accessHandler = client.Connect();
00199 if (accessHandler != null)
00200 return accessHandler.GetUsersProjects(username);
00201 MessageBox.Show("Unable to Reconnect"); throw;
00202 }
00203 }
00204
00205 public Messages AssignUser(string username, int project, RoleType role)
00206 {
00207 try
00208 {
00209 return accessHandler.AssignUser(username, project, role);
00210 }
00211 catch
00212 {
00213 accessHandler = client.Connect();
00214 if (accessHandler != null)
00215 return accessHandler.AssignUser(username, project, role);
00216 MessageBox.Show("Unable to Reconnect"); throw;
00217 }
00218 }
00219
00220 public Messages UnassignUser(string username, int project)
00221 {
00222 try
00223 {
00224 return accessHandler.UnassignUser(username, project);
00225 }
00226 catch
00227 {
00228 accessHandler = client.Connect();
00229 if (accessHandler != null)
00230 return accessHandler.UnassignUser(username, project);
00231 MessageBox.Show("Unable to Reconnect"); throw;
00232 }
00233 }
00234
00235 public ReferenceInfo[] ListReferences(int project)
00236 {
00237 try
00238 {
00239 return accessHandler.ListReferences(project);
00240 }
00241 catch
00242 {
00243 accessHandler = client.Connect();
00244 if (accessHandler != null)
00245 return accessHandler.ListReferences(project);
00246 MessageBox.Show("Unable to Reconnect"); throw;
00247 }
00248 }
00249
00250 public ReferenceInfo GetReferenceInfo(int project, int literature)
00251 {
00252 try
00253 {
00254 return accessHandler.GetReferenceInfo(project, literature);
00255 }
00256 catch
00257 {
00258 accessHandler = client.Connect();
00259 if (accessHandler != null)
00260 return accessHandler.GetReferenceInfo(project, literature);
00261 MessageBox.Show("Unable to Reconnect"); throw;
00262 }
00263 }
00264
00265 public Messages CreateReference(ReferenceInfo ri)
00266 {
00267 try
00268 {
00269 return accessHandler.CreateReference(ri);
00270 }
00271 catch
00272 {
00273 accessHandler = client.Connect();
00274 if (accessHandler != null)
00275 return accessHandler.CreateReference(ri);
00276 MessageBox.Show("Unable to Reconnect"); throw;
00277 }
00278 }
00279
00280 public Messages UpdateReference(ReferenceInfo ri)
00281 {
00282 try
00283 {
00284 return accessHandler.UpdateReference(ri);
00285 }
00286 catch
00287 {
00288 accessHandler = client.Connect();
00289 if (accessHandler != null)
00290 return accessHandler.UpdateReference(ri);
00291 MessageBox.Show("Unable to Reconnect"); throw;
00292 }
00293 }
00294
00295 public Messages DeleteReference(int project, int literature)
00296 {
00297 try
00298 {
00299 return accessHandler.DeleteReference(project, literature);
00300 }
00301 catch
00302 {
00303 accessHandler = client.Connect();
00304 if (accessHandler != null)
00305 return accessHandler.DeleteReference(project, literature);
00306 MessageBox.Show("Unable to Reconnect"); throw;
00307 }
00308 }
00309
00310 public ReviewInfo GetReviewInfo(int project, int literature)
00311 {
00312 try
00313 {
00314 return accessHandler.GetReviewInfo(project, literature);
00315 }
00316 catch
00317 {
00318 accessHandler = client.Connect();
00319 if (accessHandler != null)
00320 return accessHandler.GetReviewInfo(project, literature);
00321 MessageBox.Show("Unable to Reconnect"); throw;
00322 }
00323 }
00324
00325 public ReviewInfo[] ListReviews(int project)
00326 {
00327 try
00328 {
00329 return accessHandler.ListReviews(project);
00330 }
00331 catch
00332 {
00333 accessHandler = client.Connect();
00334 if (accessHandler != null)
00335 return accessHandler.ListReviews(project);
00336 MessageBox.Show("Unable to Reconnect"); throw;
00337 }
00338 }
00339
00340 public Messages CreateReview(ReviewInfo ri)
00341 {
00342 try
00343 {
00344 return accessHandler.CreateReview(ri);
00345 }
00346 catch
00347 {
00348 accessHandler = client.Connect();
00349 if (accessHandler != null)
00350 return accessHandler.CreateReview(ri);
00351 MessageBox.Show("Unable to Reconnect"); throw;
00352 }
00353 }
00354
00355 public Messages UpdateReview(ReviewInfo ri)
00356 {
00357 try
00358 {
00359 return accessHandler.UpdateReview(ri);
00360 }
00361 catch
00362 {
00363 accessHandler = client.Connect();
00364 if (accessHandler != null)
00365 return accessHandler.UpdateReview(ri);
00366 MessageBox.Show("Unable to Reconnect"); throw;
00367 }
00368 }
00369
00370 public SuggestionInfo[] ListSuggestions(int project)
00371 {
00372 try
00373 {
00374 return accessHandler.ListSuggestions(project);
00375 }
00376 catch
00377 {
00378 accessHandler = client.Connect();
00379 if (accessHandler != null)
00380 return accessHandler.ListSuggestions(project);
00381 MessageBox.Show("Unable to Reconnect"); throw;
00382 }
00383 }
00384
00385 public SuggestionInfo GetSuggestionInfo(int project, int literature)
00386 {
00387 try
00388 {
00389 return accessHandler.GetSuggestionInfo(project, literature);
00390 }
00391 catch
00392 {
00393 accessHandler = client.Connect();
00394 if (accessHandler != null)
00395 return accessHandler.GetSuggestionInfo(project, literature);
00396 MessageBox.Show("Unable to Reconnect"); throw;
00397 }
00398 }
00399
00400 public Messages CreateSuggestion(SuggestionInfo si)
00401 {
00402 try
00403 {
00404 return accessHandler.CreateSuggestion(si);
00405 }
00406 catch
00407 {
00408 accessHandler = client.Connect();
00409 if (accessHandler != null)
00410 return accessHandler.CreateSuggestion(si);
00411 MessageBox.Show("Unable to Reconnect"); throw;
00412 }
00413 }
00414
00415 public Messages UpdateSuggestion(SuggestionInfo si)
00416 {
00417 try
00418 {
00419 return accessHandler.UpdateSuggestion(si);
00420 }
00421 catch
00422 {
00423 accessHandler = client.Connect();
00424 if (accessHandler != null)
00425 return accessHandler.UpdateSuggestion(si);
00426 MessageBox.Show("Unable to Reconnect"); throw;
00427 }
00428 }
00429
00430 public ProjectInfo[] ListProjects()
00431 {
00432 try
00433 {
00434 return accessHandler.ListProjects();
00435 }
00436 catch
00437 {
00438 accessHandler = client.Connect();
00439 if (accessHandler != null)
00440 return accessHandler.ListProjects();
00441 MessageBox.Show("Unable to Reconnect"); throw;
00442 }
00443 }
00444
00445 public ProjectInfo GetProjectInfo(int id)
00446 {
00447 try
00448 {
00449 return accessHandler.GetProjectInfo(id);
00450 }
00451 catch
00452 {
00453 accessHandler = client.Connect();
00454 if (accessHandler != null)
00455 return accessHandler.GetProjectInfo(id);
00456 MessageBox.Show("Unable to Reconnect"); throw;
00457 }
00458 }
00459
00460 public Messages CreateProject(ProjectInfo pi, out int id)
00461 {
00462 try
00463 {
00464 return accessHandler.CreateProject(pi, out id);
00465 }
00466 catch
00467 {
00468 accessHandler = client.Connect();
00469 if (accessHandler != null)
00470 return accessHandler.CreateProject(pi, out id);
00471 MessageBox.Show("Unable to Reconnect"); throw;
00472 }
00473 }
00474
00475 public Messages UpdateProject(ProjectInfo info)
00476 {
00477 try
00478 {
00479 return accessHandler.UpdateProject(info);
00480 }
00481 catch
00482 {
00483 accessHandler = client.Connect();
00484 if (accessHandler != null)
00485 return accessHandler.UpdateProject(info);
00486 MessageBox.Show("Unable to Reconnect"); throw;
00487 }
00488 }
00489
00490 public Messages DeleteProject(int id)
00491 {
00492 try
00493 {
00494 return accessHandler.DeleteProject(id);
00495 }
00496 catch
00497 {
00498 accessHandler = client.Connect();
00499 if (accessHandler != null)
00500 return accessHandler.DeleteProject(id);
00501 MessageBox.Show("Unable to Reconnect"); throw;
00502 }
00503 }
00504
00505 public TagInfo[] GetAllTags()
00506 {
00507 try
00508 {
00509 return accessHandler.GetAllTags();
00510 }
00511 catch
00512 {
00513 accessHandler = client.Connect();
00514 if (accessHandler != null)
00515 return accessHandler.GetAllTags();
00516 MessageBox.Show("Unable to Reconnect"); throw;
00517 }
00518 }
00519
00520 public TagInfo[] GetTags(string tag, int id, string username)
00521 {
00522 try
00523 {
00524 return accessHandler.GetTags(tag, id, username);
00525 }
00526 catch
00527 {
00528 accessHandler = client.Connect();
00529 if (accessHandler != null)
00530 return accessHandler.GetTags(tag, id, username);
00531 MessageBox.Show("Unable to Reconnect"); throw;
00532 }
00533 }
00534
00535 public Messages AddTag(string tag, int id)
00536 {
00537 try
00538 {
00539 return accessHandler.AddTag(tag, id);
00540 }
00541 catch
00542 {
00543 accessHandler = client.Connect();
00544 if (accessHandler != null)
00545 return accessHandler.AddTag(tag, id);
00546 MessageBox.Show("Unable to Reconnect"); throw;
00547 }
00548 }
00549
00550 public Messages RemoveTag(string tag, int id)
00551 {
00552 try
00553 {
00554 return accessHandler.RemoveTag(tag, id);
00555 }
00556 catch
00557 {
00558 accessHandler = client.Connect();
00559 if (accessHandler != null)
00560 return accessHandler.RemoveTag(tag, id);
00561 MessageBox.Show("Unable to Reconnect"); throw;
00562 }
00563 }
00564
00565 public List<SearchResult> Search(string query)
00566 {
00567 try
00568 {
00569 return accessHandler.Search(query);
00570 }
00571 catch
00572 {
00573 accessHandler = client.Connect();
00574 if (accessHandler != null)
00575 return accessHandler.Search(query);
00576 MessageBox.Show("Unable to Reconnect"); throw;
00577 }
00578 }
00579
00580 public List<SearchResult> Search(string query, ResultType searchTypes)
00581 {
00582 try
00583 {
00584 return accessHandler.Search(query, searchTypes);
00585 }
00586 catch
00587 {
00588 accessHandler = client.Connect();
00589 if (accessHandler != null)
00590 return accessHandler.Search(query, searchTypes);
00591 MessageBox.Show("Unable to Reconnect"); throw;
00592 }
00593 }
00594
00595 public ISearchable[] ListItems(ResultType type)
00596 {
00597 try
00598 {
00599 return accessHandler.ListItems(type);
00600 }
00601 catch
00602 {
00603 accessHandler = client.Connect();
00604 if (accessHandler != null)
00605 return accessHandler.ListItems(type);
00606 MessageBox.Show("Unable to Reconnect"); throw;
00607 }
00608 }
00609 public ISearchable[] ListItems(ResultType type, string creator)
00610 {
00611 try
00612 {
00613 return accessHandler.ListItems(type,creator);
00614 }
00615 catch
00616 {
00617 accessHandler = client.Connect();
00618 if (accessHandler != null)
00619 return accessHandler.ListItems(type,creator);
00620 MessageBox.Show("Unable to Reconnect"); throw;
00621 }
00622 }
00623
00624 public CommentInfo[] GetComments(int literatureID)
00625 {
00626 try
00627 {
00628 return accessHandler.GetComments(literatureID);
00629 }
00630 catch
00631 {
00632 accessHandler = client.Connect();
00633 if (accessHandler != null)
00634 return accessHandler.GetComments(literatureID);
00635 MessageBox.Show("Unable to Reconnect"); throw;
00636 }
00637 }
00638
00639 public CommentInfo[] GetComments(int literatureID, int projectID)
00640 {
00641 try
00642 {
00643 return accessHandler.GetComments(literatureID, projectID);
00644 }
00645 catch
00646 {
00647 accessHandler = client.Connect();
00648 if (accessHandler != null)
00649 return accessHandler.GetComments(literatureID, projectID);
00650 MessageBox.Show("Unable to Reconnect"); throw;
00651 }
00652 }
00653
00654 public Messages CreateComment(CommentInfo ci, out int id)
00655 {
00656 try
00657 {
00658 return accessHandler.CreateComment(ci, out id);
00659 }
00660 catch
00661 {
00662 accessHandler = client.Connect();
00663 if (accessHandler != null)
00664 return accessHandler.CreateComment(ci, out id);
00665 MessageBox.Show("Unable to Reconnect"); throw;
00666 }
00667 }
00668
00669 #endregion
00670
00671
00672
00673
00674 #region IAccessHandler Members
00675
00676
00677 public List<SearchResult> SearchByTag(string tag)
00678 {
00679 try
00680 {
00681 return accessHandler.SearchByTag(tag);
00682 }
00683 catch
00684 {
00685 accessHandler = client.Connect();
00686 if (accessHandler != null)
00687 return accessHandler.SearchByTag(tag);
00688 MessageBox.Show("Unable to Reconnect"); throw;
00689 }
00690 }
00691
00692 public StatisticsInfo GetStatistics()
00693 {
00694 try
00695 {
00696 return accessHandler.GetStatistics();
00697 }
00698 catch
00699 {
00700 accessHandler = client.Connect();
00701 if (accessHandler != null)
00702 return accessHandler.GetStatistics();
00703 MessageBox.Show("Unable to Reconnect"); throw;
00704 }
00705
00706 }
00707
00708 public List<SearchResult> ShowRelated(int id)
00709 {
00710 try
00711 {
00712 return accessHandler.ShowRelated(id);
00713 }
00714 catch
00715 {
00716 accessHandler = client.Connect();
00717 if (accessHandler != null)
00718 return accessHandler.ShowRelated(id);
00719 MessageBox.Show("Unable to Reconnect"); throw;
00720 }
00721 }
00722
00723 #endregion
00724 }
00725 }