Example #1
0
 protected BaseRequest(SmsCommandType cmd)
 {
     Spid       = ConfigurationManager.AppSettings["SPID"];
     Sppassword = ConfigurationManager.AppSettings["SPPWD"];
     Command    = cmd;
     DC         = Convert.ToInt32(ConfigurationManager.AppSettings["DC"]);
 }
Example #2
0
 public SmsRequest(SmsCommandType cmd) : base(cmd)
 {
 }
Example #3
0
 public MultixMTRequeest(SmsCommandType cmd)
     : base(cmd)
 {
     Dasm = new Dictionary <string, string>();
 }
        /// <summary>
        /// Add chore workflow
        /// </summary>
        /// <param name="familyMember">family member</param>
        /// <param name="messageBody">child name</param>
        /// <returns>Result message</returns>
        private string AddChoreWorkflow(FamilyMember familyMember, string messageBody, SmsCommandType commandType)
        {
            var           replyMessage       = string.Empty;
            FamilyMember  childMember        = null;
            ChoreWorkflow choreWorkflow      = null;
            var           choreWorkflowQuery = Repository.Table <ChoreWorkflow>().Include(m => m.ChildMember).Include(m => m.ChildMember.User)
                                               .Where(m => m.FamilyMemberID == familyMember.Id && m.WorkflowStatus == WorkflowStatus.Active);

            if (commandType == SmsCommandType.AddChore)
            {
                choreWorkflowQuery = choreWorkflowQuery.Where(m => m.ChildMember.Firstname.ToLower() == messageBody);
            }

            if (commandType == SmsCommandType.AddChore)
            {
                childMember = _familyService.GetMember(familyMember.User.FamilyID, messageBody, MemberType.Child);
                if (childMember == null)
                {
                    return("Child not found");
                }

                choreWorkflow = new ChoreWorkflow
                {
                    FamilyMemberID = familyMember.Id,
                    ChildMemberID  = childMember.Id
                };
                Repository.Insert(choreWorkflow);
                return("What chore would you like?");
            }

            choreWorkflow = choreWorkflowQuery.OrderByDescending(m => m.Id).FirstOrDefault();
            if (choreWorkflow == null)
            {
                return(_errMsg);
            }


            if (string.IsNullOrEmpty(choreWorkflow.Name))
            {
                choreWorkflow.Name = messageBody;
                replyMessage       = "Chore value?";
            }
            else if (!choreWorkflow.Value.HasValue)
            {
                var choreValue = decimal.Zero;
                if (!decimal.TryParse(messageBody.Replace("$", ""), out choreValue))
                {
                    return(_errMsg);
                }

                choreWorkflow.Value = choreValue;
                replyMessage        = string.Format("On which frequency should {0} do this?. Text back 'Once', 'Daily' or 'Weekly'", choreWorkflow.ChildMember.Firstname);
            }
            else if (!choreWorkflow.FrequencyType.HasValue)
            {
                choreWorkflow.FrequencyType = messageBody.FirstCharToUpper().ToEnum(FrequencyType.Daily);
                replyMessage = string.Format("When should {0} do this?", choreWorkflow.ChildMember.Firstname);
            }
            else if (string.IsNullOrEmpty(choreWorkflow.FrequencyRange))
            {
                choreWorkflow.FrequencyRange = messageBody.ConvertToDayFullName();
                if (choreWorkflow.FrequencyType.Value == FrequencyType.Once)
                {
                    choreWorkflow.DueDate = GetNextDateByDayName(choreWorkflow.FrequencyRange);
                }

                SaveChoreWorkflow(choreWorkflow);
                replyMessage = string.Format("Thanks! I've added that chore to {0}.", choreWorkflow.ChildMember.Firstname);
            }
            else
            {
                return(_errMsg);
            }

            Repository.Update(choreWorkflow);
            return(replyMessage);
        }
Example #5
0
 public MultiSmsRequest(SmsCommandType cmd)
     : base(cmd)
 {
     Das = new List <string> {
     };
 }