public List <string> Fix(SplitFixModel splitFixModel) { var eventSubeventSubscriptionService = new EventSubscriptionService(); var eventSubscriptions = eventSubeventSubscriptionService.GetAll(splitFixModel.EventID); // Get Current Event var ev = Get(splitFixModel.EventID); ev.Price = splitFixModel.Amount; // update Event Update(ev); // Generate Debts var userList = new List <string>(); var debtService = new DebtService(); foreach (var eventSubscription in eventSubscriptions) { userList.Add(eventSubscription.UserName); // Debt Creation debtService.Create(new Debt() { AmountDue = ev.Price, EventID = splitFixModel.EventID, UserID = eventSubscription.UserID }); } return(userList); }
public List <string> Split(SplitFixModel splitFixModel) { var eventSubeventSubscriptionService = new EventSubscriptionService(); // Get User List var users = eventSubeventSubscriptionService.GetAll(splitFixModel.EventID); var participantCount = users.Count; if (participantCount == 0) { throw HttpResponseExceptionHelper.Create("No one has subscribed to the event", HttpStatusCode.BadRequest); } splitFixModel.Amount = splitFixModel.Amount / participantCount; return(Fix(splitFixModel)); }
public override void Execute() { var endpoint = "https://slack.com/api/chat.postMessage"; var eventService = new EventService(); var eventId = eventService .GetEventByCreatorId(this.Parameters[0], CommandRequest.User_ID).EventID; SplitFixModel model = new SplitFixModel() { EventID = eventId, Amount = double.Parse(this.Parameters[1]) }; WebClient client = new WebClient(); string text = ""; EventService service = new EventService(); if (this.Type == CommandType.Fix) { var users = service.Split(model); var userArray = string.Join(",", users); text = string.Format("FIX_EVENT_IOU {0} {1} {2} {3} [{4}]", model.Amount, this.Parameters[0], this.Parameters[2], CommandRequest.Channel_ID, userArray); } else if (this.Type == CommandType.Split) { var users = service.Split(model); var userArray = string.Join(",", users); text = string.Format("SPLIT_EVENT_IOU {0} {1} {2} {3} [{4}]", model.Amount, this.Parameters[0], this.Parameters[2], CommandRequest.Channel_ID, userArray); } var response = client.UploadValues(endpoint, "POST", new NameValueCollection() { { "token", "xoxp-48206941781-48203038320-48284423348-ea63295ae1" }, { "as_user", "true" }, { "channel", "@ioubot" }, { "text", text } }); this.CommandResponse.Text = "Event is now active!"; }
public List <string> FixEvent(SplitFixModel splitFixModel) { return(EventService.Fix(splitFixModel)); }
public List <string> SplitEvent(SplitFixModel splitFixModel) { return(EventService.Split(splitFixModel)); }