Advertisement
Guest User

Untitled

a guest
Aug 10th, 2015
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.40 KB | None | 0 0
  1. using radario2.Models.Rest.Models;
  2. using ServiceStack.CacheAccess;
  3. using ServiceStack.CacheAccess.Providers;
  4. using ServiceStack.ServiceHost;
  5. using ServiceStack.ServiceInterface;
  6. using ServiceStack.ServiceInterface.Auth;
  7. using ServiceStack.Text;
  8. using ServiceStack.WebHost.Endpoints;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Web;
  13.  
  14. namespace radario2.Rest.Services {
  15. public class ApiServiceHost : AppHostBase {
  16. public const string ReadPermission = "Read";
  17. public const string WritePermission = "Write";
  18. public ApiServiceHost() : base("SS:Service", typeof(ApiServiceHost).Assembly) { }
  19.  
  20. public override void Configure(Funq.Container container) {
  21. JsConfig.IncludeNullValues = true;
  22. JsConfig.EmitCamelCaseNames = true;
  23.  
  24. //Cahche!
  25. container.Register<ICacheClient>(new MemoryCacheClient());
  26. container.Register<ISessionFactory>(c => new SessionFactory(c.Resolve<ICacheClient>()));
  27.  
  28. ConfigureAuth(container);
  29. RegisterRoutes();
  30. }
  31.  
  32. private void RegisterRoutes()
  33. {
  34. Routes
  35. .Add<UserInfoService.RequestDTO>("/users/{UserId}/info")
  36. .Add<UserOrderService.RequestDTO>("/users/{UserId}/orders")
  37. .Add<UserOrderTicketService.RequestDTO>("/users/{UserOrderId}/tickets")
  38. .Add<UserSearchService.RequestDTO>("/user/{Type}/{SearchString}")
  39.  
  40. .Add<EventService.RequestDTO>("/events")
  41. .Add<PassedEventService.RequestDTO>("/events/passed")
  42. .Add<EventService.RequestDTO>("/events/{Id}")
  43. .Add<TicketService.RequestDTO>("/events/{EventId}/tickets")
  44. .Add<TicketTypeService.RequestDTO>("/events/{EventId}/ticket-types")
  45.  
  46. .Add<OrderService.Req>("/orders")
  47. .Add<OrderService.Req>("/orders/{Id}")
  48. .Add<OrderService.ResendTicketsReq>("/orders/{Id}/resend-tickets")
  49. .Add<OrderDetailsService.RequestDTO>("/orders/{Id}/details")
  50. .Add<TicketService.RequestDTO>("/orders/{OrderId}/tickets")
  51. .Add<OrderPaymentStatusService.RequestDTO>("/orders/{UserOrderId}/payment")
  52.  
  53. .Add<OrderFinderService.Req>("/find-order")
  54. .Add<TrackCampaignService.RequestDTO>("/tracks")
  55.  
  56. .Add<AudienceService.RequestDTO>("/audience")
  57. .Add<AudienceService.RequestDTO>("/audience/{EventId}")
  58.  
  59. .Add<HostService.GetRequest>("/hosts")
  60. .Add<HostService.PutRequest>("/hosts/{Id}")
  61.  
  62. .Add<DataPeriod>("/reg-statistic")
  63. .Add<DataPeriod>("/reg-statistic/{Begin}/{End}")
  64.  
  65. .Add<HostBillingItemService.RequestDTO>("/billing/hosts/items")
  66. .Add<HostBillingItemService.RequestDTO>("/billing/hosts/{Id}/items")
  67. .Add<HostBillingService.RequestDTO>("/billing/hosts")
  68. .Add<HostBillingService.RequestDTO>("/billing/hosts/{Id}")
  69.  
  70. .Add<ConcertEventsRefreshesService.RequestDTO>("/concertRefreshes/{City}")
  71. .Add<ConcertEventsService.RequestDTO>("/concertEvents/{City}/{OrderNumber}")
  72. .Add<ConcertMarkService.RequestDTO>("/mark/{Link}")
  73. .Add<ReportService.RequestDTO>("/reports/{eventId}")
  74. .Add<ReportService.RequestDTO>("/reports/{eventId}/{reportId}")
  75. .Add<CompanyReportService.RequestDTO>("/companyReports/{companyId}")
  76. .Add<CompanyReportService.RequestDTO>("/companyReports/{companyId}/{reportId}")
  77. .Add<ReportGenerationService.RequestDTO>("/reports/create/{Id}")
  78. .Add<ReportDownloadService.RequestDTO>("/reports/download/{ReportId}")
  79. .Add<CompanyReportDownloadService.RequestDTO>("/companyReports/download/{ReportId}")
  80. .Add<EventReportsService.RequestDTO>("/eventReports/{From}/{To}")
  81. .Add<CompaniesListService.RequestDTO>("/companyReportsList")
  82. .Add<CompanyInfoService.RequestDTO>("/company/{CompanyId}")
  83. .Add<PartnerService.RequestDTO>("/partners")
  84. .Add<OnePartnerService.RequestDTO>("/partners/{Id}")
  85. .Add<OnePartnerReferalsService.RequestDTO>("/partners/referals/{Id}")
  86. .Add<MailerRealeseSubmitService.RequestDTO>("/Sender/SendMailsToRecipients")
  87. .Add<MailerTestSubmitService.RequestDTO>("/Sender/SendTestMail")
  88. .Add<MailerGetCountService.RequestDTO>("/Sender/GetCount")
  89. .Add<MailerStatistic.RequestDTO>("/Sender/GetStatistic")
  90. .Add<GetOnePartnerService.RequestDTO>("/partner/{Id}")
  91. .Add<CompanyListService.RequestDTO>("/companies")
  92. .Add<DevicesAddService.RequestDTO>("/devices/add")
  93. .Add<DeviceUpdateService.RequestDTO>("/devices/update")
  94. .Add<DeviceDeleteService.RequestDTO>("/devices/delete")
  95. .Add<DevicesService.RequestDTO>("/devices")
  96. .Add<RightsService.RequestDTO>("/rights")
  97. .Add<RightsService.RequestDTO>("/rights/{Id}/{TypeOfCategory}")
  98. .Add<GetClusters.RequestDTO>("/clusters/get")
  99. .Add<GetClusters.RequestDTO>("/clusters/get/{EventId}")
  100. .Add<AddEventToCluster.RequestDTO>("/clusters/add/{ClusterId}/{EventId}")
  101. .Add<DeleteEventFromCluster.RequestDTO>("/clusters/del/{ClusterId}/{EventId}")
  102. .Add<GetEventsForCluster.RequestDTO>("/clusters/getEvents")
  103. .Add<CloseSalesService.CloseSalesRequestDTO>("/event/closeSales")
  104. .Add<CloseSalesService.SendActRequestDTO>("/event/sendAct")
  105. .Add<ReportInfoService.GetReq>("/host/reportInfo/{CompanyId}")
  106. .Add<ReportInfoService.PostReq>("/host/reportInfo/save", "POST")
  107. .Add<StartPageService.CountRequestDTO>("/orders/sum")
  108. .Add<RefundService.OrderRequestDto>("/refund/order", "POST")
  109. .Add<RefundService.TicketRequestDto>("/refund/ticket", "POST")
  110. .Add<ProfitService.RequestDTO>("/profit/{cityId}/{from}/{to}")
  111. .Add<CityService.RequestDTO>("/cities")
  112. .Add<ExcludeListService.DTO>("/exclude-emails")
  113. .Add<StartPageService.HostCountRequestDTO>("/host/get_count")
  114. .Add<StartPageService.SalesStatisticsRequestDTO>("/sales/by/{type}");
  115. }
  116.  
  117. private void ConfigureAuth(Funq.Container container) {
  118. Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] {
  119. new CredentialsAuthProvider() {
  120. SessionExpiry = TimeSpan.FromDays(10),
  121.  
  122. }
  123. //new DigestAuthProvider()
  124. //new BasicAuthProvider()
  125. }));
  126.  
  127. var userRep = new InMemoryAuthRepository();
  128. container.Register<IUserAuthRepository>(userRep);
  129. CreateUsers(userRep);
  130. }
  131. private void CreateUsers(IUserAuthRepository userRepository) {
  132. string hash;
  133. string salt;
  134.  
  135. string userName = "lena";
  136. string password = "rbylth";
  137. new SaltedHash().GetHashAndSaltString(password, out hash, out salt);
  138. UserAuth user = new UserAuth {
  139. Id = 1,
  140. DisplayName = "Mr. Writer",
  141. Email = "writer@if.com",
  142. UserName = userName,
  143. FirstName = "Mr.",
  144. LastName = "Writer",
  145. PasswordHash = hash,
  146. Salt = salt,
  147. Permissions = new List<string>(new[] { ReadPermission, WritePermission })
  148. };
  149. userRepository.CreateUserAuth(user, password);
  150.  
  151. userName = "reader";
  152. password = "2canread4";
  153. new SaltedHash().GetHashAndSaltString(password, out hash, out salt);
  154. user = new UserAuth {
  155. Id = 1,
  156. DisplayName = "Mr. Reader",
  157. Email = "reader@if.com",
  158. UserName = userName,
  159. FirstName = "Mr.",
  160. LastName = "Reader",
  161. PasswordHash = hash,
  162. Salt = salt,
  163. Permissions = new List<string> { ReadPermission }
  164. };
  165. userRepository.CreateUserAuth(user, password);
  166.  
  167. userName = "findorder";
  168. password = "Hd8Lhe7FG";
  169. new SaltedHash().GetHashAndSaltString(password, out hash, out salt);
  170. user = new UserAuth {
  171. Id = 2,
  172. DisplayName = "Order Finder",
  173. Email = "finder@if.com",
  174. UserName = userName,
  175. PasswordHash = hash,
  176. Salt = salt,
  177. Permissions = new List<string>()
  178. };
  179. userRepository.CreateUserAuth(user, password);
  180.  
  181.  
  182. userName = "konstantin";
  183. password = "qwertyp0p";
  184. new SaltedHash().GetHashAndSaltString(password, out hash, out salt);
  185. user = new UserAuth {
  186. Id = 1,
  187. DisplayName = "Mr. Writer",
  188. Email = "konstantin@radario.ru",
  189. UserName = userName,
  190. FirstName = "Mr.",
  191. LastName = "Writer",
  192. PasswordHash = hash,
  193. Salt = salt,
  194. Permissions = new List<string>(new[] { ReadPermission, WritePermission })
  195. };
  196. userRepository.CreateUserAuth(user, password);
  197.  
  198. //userName = "moscow";
  199. //password = "4capital";
  200. //new SaltedHash().GetHashAndSaltString(password, out hash, out salt);
  201. //user = new UserAuth {
  202. // Id = 1,
  203. // DisplayName = "Mr. Moscow",
  204. // Email = "moscow@if.com",
  205. // UserName = userName,
  206. // FirstName = "Mr.",
  207. // LastName = "Moscow",
  208. // PasswordHash = hash,
  209. // Salt = salt,
  210. // Permissions = new List<string>(new string[] { "Read", "Write" })
  211. //};
  212. //userRepository.CreateUserAuth(user, password);
  213. }
  214.  
  215. public static void Start() {
  216. new ApiServiceHost().Init();
  217. }
  218. }
  219. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement