Advertisement
Guest User

Untitled

a guest
Mar 6th, 2015
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.74 KB | None | 0 0
  1. - (TTEventVO *)updateEventWithDictionary:(NSDictionary *)eventItem isTop:(BOOL)top groupName:(NSString *)groupName ignoreSaved:(BOOL)ignoreSaved
  2. {
  3. TTEventVO *dbEvent = nil;
  4. if (!ignoreSaved) {
  5. dbEvent = [TTEventVO MR_findFirstByAttribute:@"serverID" withValue:eventItem[@"ni"]];
  6. }
  7.  
  8. if (!dbEvent) {
  9. dbEvent = [TTEventVO MR_createEntity];
  10. dbEvent.serverID = eventItem[@"ni"];
  11. dbEvent.code = eventItem[@"code"];
  12. dbEvent.eventMethod = eventItem[@"ev"];
  13. dbEvent.homeTeamId = eventItem[@"hi"];
  14. dbEvent.homeTeam = [NSString stringFromLexicon:eventItem[@"lexicon"] withKey:dbEvent.homeTeamId];
  15. dbEvent.visitorTeamId = eventItem[@"ai"];
  16. dbEvent.visitorTeam = [NSString stringFromLexicon:eventItem[@"lexicon"] withKey:dbEvent.visitorTeamId];
  17. dbEvent.priority = eventItem[@"priority"];
  18. dbEvent.tournament = [TTTournamentVO MR_findFirstByAttribute:@"serverID" withValue:eventItem[@"ti"]];
  19. dbEvent.kickOffDate = [NSDate dateWithTimeIntervalSince1970:[eventItem[@"kdt"] doubleValue]/1000];
  20. }
  21.  
  22. if (!dbEvent.tournament) {
  23. TTTournamentVO *tournament = [TTTournamentVO MR_findFirstByAttribute:@"serverID" withValue:eventItem[@"ti"]];
  24. if (!tournament) {
  25. TTSportVO *sport = [TTSportVO MR_findFirstByAttribute:@"serverID" withValue:eventItem[@"si"]];
  26. if (!sport) {
  27. sport = [TTSportVO MR_createEntity];
  28. sport.serverID = eventItem[@"si"];
  29. }
  30.  
  31. TTCountryVO *country = [TTCountryVO MR_createEntity];
  32. country.serverID = @"";
  33. country.name = [NSString stringFromLexicon:eventItem[@"lexicon"] withKey:eventItem[@"ci"]];
  34. country.sport = sport;
  35.  
  36. TTTournamentVO *dbTournament = [TTTournamentVO MR_createEntity];
  37. dbTournament.serverID = @"";
  38. dbTournament.name = [NSString stringFromLexicon:eventItem[@"lexicon"] withKey:eventItem[@"ti"]];
  39. dbTournament.country = country;
  40. dbEvent.tournament = dbTournament;
  41. } else {
  42. dbEvent.tournament = tournament;
  43. }
  44. }
  45.  
  46. NSString *sportID = eventItem[@"si"];
  47.  
  48. NSArray *markets = eventItem[@"markets"];
  49.  
  50. NSUInteger extraMarkets = (markets.count > 0) ? markets.count - 1 : 0;
  51.  
  52. if (eventItem[@"num"]) {
  53. dbEvent.availableMarkets = @([eventItem[@"num"] integerValue] + extraMarkets);
  54. } else {
  55. dbEvent.availableMarkets = @(extraMarkets);
  56. }
  57.  
  58. for (int i=0; i<markets.count; i++)
  59. {
  60. NSDictionary *marketItem = markets[i];
  61.  
  62. NSString *nameGroup = @"";
  63. if (([marketItem[@"i"] integerValue] > 81 && [marketItem[@"i"] integerValue] < 400) || [marketItem[@"i"] integerValue] > 500) {
  64. nameGroup = [NSString stringFromLexicon:eventItem[@"lexicon"] withKey:[NSString stringWithFormat:@"%@_%@_short", dbEvent.serverID, marketItem[@"i"]]];
  65. } else {
  66. nameGroup = [NSString stringFromLexicon:self.bettingConfig[@"lexicon"] withKey:[NSString stringWithFormat:@"def_%@_%@_short", sportID, marketItem[@"i"]]];
  67. }
  68.  
  69. if (!groupName || [nameGroup isEqualToString:groupName]) {
  70. NSString *marketID = [NSString stringWithFormat:@"%@_%@", dbEvent.serverID, marketItem[@"i"]];
  71.  
  72. TTMarketVO *dbMarket = nil;
  73. if (!ignoreSaved) {
  74. dbMarket = [TTMarketVO MR_findFirstByAttribute:@"serverID" withValue:marketID];
  75. }
  76.  
  77. if (!dbMarket) {
  78. dbMarket = [TTMarketVO MR_createEntity];
  79. dbMarket.serverID = marketID;
  80. dbMarket.code = marketItem[@"i"]; // [NSString stringWithFormat:@"%li", [marketItem[@"i"] integerValue]];
  81. dbMarket.event = dbEvent;
  82. dbMarket.name = [self nameForMarket:dbMarket marketLexicon:eventItem[@"lexicon"]];
  83. dbMarket.nameShort = [self nameShortForMarket:dbMarket marketLexicon:eventItem[@"lexicon"]];
  84. }
  85.  
  86. dbMarket.active = @(YES);
  87.  
  88. dbMarket.order = @([self orderFromConfig:self.bettingConfig sportID:sportID marketID:dbMarket.code]);
  89. dbMarket.orderName = (top) ? [NSString stringWithFormat:@"%04ld", (long)[dbMarket.order integerValue]] : @"9999";
  90. dbMarket.maxSelections = marketItem[@"maxs"];
  91. dbMarket.minSelections = marketItem[@"mins"];
  92. dbMarket.columns = ([marketItem[@"ct"] integerValue] > 0) ? marketItem[@"ct"] : @(3);
  93. dbMarket.status = marketItem[@"sts"];
  94.  
  95. if ([marketItem[@"i"] integerValue] > 81) {
  96. dbMarket.help = [NSString stringFromLexicon:self.bettingConfig[@"lexicon"] withKey:[NSString stringWithFormat:@"def_%@_%@_t", sportID, marketItem[@"fi"]]];
  97. } else {
  98. dbMarket.help = [NSString stringFromLexicon:self.bettingConfig[@"lexicon"] withKey:[NSString stringWithFormat:@"def_%@_%@_t", sportID, dbMarket.code]];
  99. }
  100.  
  101. if (marketItem[@"mgi"][@"1"][0]) {
  102. dbMarket.group = [NSNumber numberWithInteger:[marketItem[@"mgi"][@"1"][0] integerValue]];
  103. }
  104.  
  105. if ([dbMarket.group isEqual:@(11111111)]) {
  106. dbMarket.groupName = @"Overige weddenschappen";
  107. } else {
  108. dbMarket.groupName = [NSString stringFromLexicon:self.bettingConfig[@"lexicon"] withKey:[NSString stringWithFormat:@"g_%@_%@_1", sportID, dbMarket.group]];
  109. }
  110.  
  111. dbMarket.varFlag = marketItem[@"v"];
  112. dbMarket.varFlag1 = marketItem[@"v1"];
  113. dbMarket.varFlag2 = marketItem[@"v2"];
  114.  
  115. // http://194.30.240.228:8080/examples/delottov2/betGameLexicon.html
  116.  
  117. if ([dbMarket.name rangeOfString:@"|HC|"].location != NSNotFound) {
  118. NSString *template = (dbMarket.varFlag1.floatValue >= 0) ? @"%@-0" : @"0%@";
  119.  
  120. dbMarket.name = [dbMarket.name stringByReplacingOccurrencesOfString:@"|HC|" withString:[NSString stringWithFormat:template, dbMarket.varFlag1.stringValue]];
  121. dbMarket.nameShort = [dbMarket.nameShort stringByReplacingOccurrencesOfString:@"|HC|" withString:[NSString stringWithFormat:template, dbMarket.varFlag1.stringValue]];
  122. }
  123.  
  124. if ([dbMarket.name rangeOfString:@"|R|"].location != NSNotFound) {
  125.  
  126. }
  127.  
  128. if ([dbMarket.name rangeOfString:@"|i|"].location != NSNotFound) {
  129. for (NSDictionary *indexedMarket in marketItem[@"indexedMarkets"]) {
  130. if ([indexedMarket[@"s"] integerValue] == 1) {
  131. NSInteger value = [indexedMarket[@"i"] integerValue]+1;
  132. NSString *valueString = [NSString stringWithFormat:@"ordinalNumber%ld", (long)value];
  133. dbMarket.name = [dbMarket.name stringByReplacingOccurrencesOfString:@"|i|" withString:NSLocalizedString(valueString, nil)];
  134. dbMarket.nameShort = [dbMarket.nameShort stringByReplacingOccurrencesOfString:@"|i|" withString:NSLocalizedString(valueString, nil)];
  135. }
  136. }
  137. }
  138.  
  139. if ([dbMarket.name rangeOfString:@"|HCS|"].location != NSNotFound) {
  140. dbMarket.name = [dbMarket.name stringByReplacingOccurrencesOfString:@"|HCS|" withString:@""];
  141. dbMarket.nameShort = [dbMarket.nameShort stringByReplacingOccurrencesOfString:@"|HCS|" withString:@""];
  142. }
  143.  
  144. if ([dbMarket.name rangeOfString:@"|lim|"].location != NSNotFound) {
  145. CGFloat floatVal = 0.0;
  146. if (i == 0) {
  147. floatVal = [dbMarket.varFlag1 floatValue];
  148. } else if (i == 1 && [dbMarket.varFlag2 isEqual:@(0)]) {
  149. floatVal = [dbMarket.varFlag1 floatValue]*(-1);
  150. } else if (i == 1) {
  151. floatVal = [dbMarket.varFlag2 floatValue];
  152. }
  153.  
  154. if (floatVal == 0) {
  155. dbMarket.name = [dbMarket.name stringByReplacingOccurrencesOfString:@"|lim|" withString:@""];
  156. dbMarket.nameShort = [dbMarket.name stringByReplacingOccurrencesOfString:@"|lim|" withString:@""];
  157. } else {
  158. dbMarket.name = [dbMarket.name stringByReplacingOccurrencesOfString:@"|lim|" withString:[NSString stringWithFormat:@"%.1f", floatVal]];
  159. dbMarket.nameShort = [dbMarket.name stringByReplacingOccurrencesOfString:@"|lim|" withString:[NSString stringWithFormat:@"%.1f", floatVal]];
  160. }
  161. }
  162.  
  163. dbMarket.name = [[[dbMarket.name substringToIndex:1] uppercaseString] stringByAppendingString:[dbMarket.name substringFromIndex:1]];
  164. dbMarket.nameShort = [[[dbMarket.nameShort substringToIndex:1] uppercaseString] stringByAppendingString:[dbMarket.nameShort substringFromIndex:1]];
  165.  
  166. //NSLog(@"Market code: %@ %@ %@", dbMarket.code, marketItem[@"fi"], dbMarket.groupName);
  167.  
  168. if ([dbMarket.group isEqual:@(11111111)]) {
  169. dbMarket.groupOrder = @(9000);
  170. } else if (dbMarket.groupName.length > 0) {
  171. dbMarket.groupOrder = @([self orderGroupFromConfig:self.bettingConfig sportID:sportID groupID:[dbMarket.group stringValue]]);
  172. } else {
  173. dbMarket.groupOrder = @(1000);
  174. }
  175. dbMarket.groupOrderName = [NSString stringWithFormat:@"%04ld_%@", (long)[dbMarket.groupOrder integerValue], dbMarket.groupName];
  176.  
  177. dbMarket.name = [dbMarket.name stringByReplacingOccurrencesOfString:@"." withString:@","];
  178. dbMarket.nameShort = [dbMarket.nameShort stringByReplacingOccurrencesOfString:@"." withString:@","];
  179.  
  180. //NSLog(@"GROUP %@, %@ (%@ > %@)", dbMarket.groupName, dbMarket.name, dbMarket.order, dbMarket.groupOrder);
  181.  
  182. NSArray *codes = marketItem[@"codes"];
  183. for (int i=0; i<codes.count; i++) // for (NSDictionary *codeItem in marketItem[@"codes"])
  184. {
  185. NSDictionary *codeItem = marketItem[@"codes"][i];
  186. NSString *betID = [NSString stringWithFormat:@"%@_%@", dbMarket.serverID, codeItem[@"c"]];
  187.  
  188. TTBetVO *dbBet = nil;
  189. if (!ignoreSaved) {
  190. dbBet = [TTBetVO MR_findFirstByAttribute:@"serverID" withValue:betID];
  191. }
  192.  
  193. if (!dbBet) {
  194. dbBet = [TTBetVO MR_createEntity];
  195. dbBet.uiselected = @NO;
  196. dbBet.code = codeItem[@"c"];
  197. dbBet.serverID = betID;
  198. dbBet.market = dbMarket;
  199. }
  200.  
  201. //dbBet.desc = [self descriptionForBet:dbBet betLexicon:eventItem[@"lexicon"] betIndex:i];
  202. dbBet.desc = [self descriptionForBet:dbBet betLexicon:eventItem[@"lexicon"] betIndex:i];
  203. dbBet.value = codeItem[@"oddPerSet"][@"1"];
  204. dbBet.status = codeItem[@"s"];
  205. }
  206. }
  207. }
  208.  
  209. // if ([dbEvent.tournament.order integerValue] == 0) {
  210. // dbEvent.tournament.topSort = [NSString stringWithFormat:@"999-%@-%@", dbEvent.tournament.name, dbEvent.tournament.serverID];
  211. // } else {
  212. // dbEvent.tournament.topSort = [NSString stringWithFormat:@"%03ld-%@-%@", (long)[dbEvent.tournament.order integerValue], dbEvent.tournament.name, dbEvent.tournament.serverID];
  213. // }
  214.  
  215. return dbEvent;
  216. }
  217.  
  218.  
  219.  
  220.  
  221.  
  222. - (NSString *)descriptionForBet:(TTBetVO *)bet betLexicon:(NSDictionary *)lexicon betIndex:(NSInteger)betIndex
  223. {
  224. NSString *desc = @"";
  225. if (([bet.market.code integerValue] > 81 && [bet.market.code integerValue] < 400) || [bet.market.code integerValue] > 500) {
  226. desc = [NSString stringFromLexicon:lexicon withKey:[NSString stringWithFormat:@"%@_%@_%@", bet.market.event.serverID, bet.market.code, bet.code]];
  227. } else {
  228. desc = [NSString stringFromLexicon:self.bettingConfig[@"lexicon"] withKey:[NSString stringWithFormat:@"def_%@_%@_%@", bet.market.event.tournament.country.sport.serverID, bet.market.code, bet.code]];
  229. }
  230.  
  231. if ([desc rangeOfString:@"|lim|"].location != NSNotFound) {
  232. CGFloat floatVal = 0.0;
  233. if (betIndex == 0) {
  234. floatVal = bet.market.varFlag1.floatValue;
  235. } else if (betIndex == 1 && [bet.market.varFlag2 isEqual:@(0)]) {
  236. floatVal = bet.market.varFlag1.floatValue*(-1);
  237. } else if (betIndex == 1) {
  238. floatVal = bet.market.varFlag2.floatValue;
  239. }
  240.  
  241. if (floatVal == 0) {
  242. desc = [desc stringByReplacingOccurrencesOfString:@"|lim|" withString:@""];
  243. } else {
  244. desc = [desc stringByReplacingOccurrencesOfString:@"|lim|" withString:[NSString totoDecimalWithFloat:floatVal]];
  245. }
  246. }
  247.  
  248. desc = [desc stringByReplacingOccurrencesOfString:@"*" withString:@""];
  249.  
  250. if ([desc rangeOfString:@"|HC|"].location != NSNotFound) {
  251.  
  252. NSString *replacement;
  253.  
  254. if ([bet.market.varFlag1 floatValue] < 0) {
  255. replacement = [NSString stringWithFormat:@"(0-%.0f)", [bet.market.varFlag1 floatValue]*-1];
  256. } else {
  257. replacement = [NSString stringWithFormat:@"(%.0f-0)", [bet.market.varFlag1 floatValue]];
  258. }
  259.  
  260. desc = [desc stringByReplacingOccurrencesOfString:@"|HC|" withString:replacement];
  261. }
  262.  
  263. if ([desc rangeOfString:@"|DHCA|"].location != NSNotFound) {
  264. float val = bet.market.varFlag1.floatValue;
  265. desc = [desc stringByReplacingOccurrencesOfString:@"1 |DHCA|" withString:[NSString stringWithFormat:(val > 0) ? @"1 (+%@)" : @"1 (%@)", [NSString totoDecimalWithFloat:val]]];
  266. desc = [desc stringByReplacingOccurrencesOfString:@"2 |DHCA|" withString:[NSString stringWithFormat:(val < 0) ? @"2 (+%@)" : @"2 (%@)", [NSString totoDecimalWithFloat:-val]]];
  267. }
  268.  
  269. if ([desc rangeOfString:@"|DHCB|"].location != NSNotFound) {
  270. float val = bet.market.varFlag2.floatValue;
  271. desc = [desc stringByReplacingOccurrencesOfString:@"1 |DHCB|" withString:[NSString stringWithFormat:(val > 0) ? @"1 (+%@)" : @"1 (%@)", [NSString totoDecimalWithFloat:val]]];
  272. desc = [desc stringByReplacingOccurrencesOfString:@"2 |DHCB|" withString:[NSString stringWithFormat:(val < 0) ? @"2 (+%@)" : @"2 (%@)", [NSString totoDecimalWithFloat:-val]]];
  273. }
  274.  
  275. return desc;
  276. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement