مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

محمد قاری

عضویت از 1395/02/07

اجرا نشدن متد ها

  • چهارشنبه 11 مرداد 1396
  • 18:19
تشکر میکنم

سلام استاد خسته نباشید 

من دارم روی یک ربات تگرام کار میکنم 

من برنامه رو روی windows app نوشتم وبعد از کامل شدن آن را برای وب هوک مینویسم که در کنترلر APi است

حالا من کد را به طور کامل تطبیق دادم با API ولی کد های من بدرستی کار نمیکنه

من در ApiController برنامه رو نوشتم به صورتی که در کد از کلاس های خارجی استفاده کردم و اونارو فراخوانی کردم 

تصویر زیر قسمتی از کنترلر است

و تصویر زیر یکی از متد ها که نوشتم و فراخوانی کردم

ولی کدی که فراخوانی کردم به هیچ وجه فراخوانی نمیشه ...

چرا ؟ مشکل کجاست

پاسخ های این پرسش

تعداد پاسخ ها : 8 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • چهارشنبه 11 مرداد 1396
  • 18:24

برای نمایش کد ها از تصویر استفاده نکنید کدهای  را در فرمت کد قرار دهید :)))))))

کاربر سایت

محمد قاری

عضویت از 1395/02/07

  • چهارشنبه 11 مرداد 1396
  • 18:32

 

تمامی قسمت های موجود در خود اکشن post کار میکنه به جز کد هایی که به جای دیگر ارجاع داده شده

قسمتی از کد های فراخوانی شده

public class BotMethods
    {
        UnitOfWork un = new UnitOfWork();
        public async Task<int> GetActionID(long ChatID)
        {
            var chatinfo = await Task.Run(() => un.gChatActionRepository.GetById(ChatID));
            if (chatinfo == null)
                return 0;
            return chatinfo.ActionID;

        }
        public async Task UserInfoSet(long ChatID, long ADSID)
        {
            var UserInfo = await Task.Run(() => un.gBotUserInfoRepository.GetById(ChatID));
            if (UserInfo == null)
            {
                BotUserInfo BI = new BotUserInfo()
                {
                    ChatID = Convert.ToInt32(ChatID),
                    ADSID = ADSID,
                    Date = DateTime.Now,
                    IsConfirm = false,
                };
                await Task.Run(() => un.gBotUserInfoRepository.Insert(BI));
            }
            else
            {
                UserInfo.ADSID = ADSID;
                UserInfo.Date = DateTime.Now;
                await Task.Run(() => un.gBotUserInfoRepository.Update(UserInfo));
            }
        }
        public async Task DelContent()
        {

            var f = await Task.Run(() => un.gBotUserInfoRepository.Get(p => p.Date < DateTime.Now.AddDays(-14)));

            foreach (var item in f)
            {
                await Task.Run(() => un.gBotUserInfoRepository.Delete(item, false));
            }
            await Task.Run(() => un.gBotUserInfoRepository.Save());
        }
        public void SetChatAction(long ChatID, int Action)
        {
            var f = un.gChatActionRepository.GetById(ChatID);
            if (f == null)
            {
                var Chat = new ChatAction()
                {
                    ActionID = Action,
                    ChatID = ChatID,
                    Date = DateTime.Now
                };
                un.gChatActionRepository.Insert(Chat);
            }
            else
            {
                f.ActionID = Action;
                f.Date = DateTime.Now;
                un.gChatActionRepository.Save();
            }
        }
}

کنترلر

UnitOfWork un = new UnitOfWork();
        BotMethods BM = new BotMethods();

public async Task<IHttpActionResult> post(Update update, string Token)
        {

            var bot = new TelegramBot(Token);

            keybOard = new ReplyKeyboardMarkup()
            {
                Keyboard = new[] {
                     new[] { new KeyboardButton("پیگیری سفارش")},
                     new[] { new KeyboardButton("اطلاعات تماس فروشگاه")},
                                 },
                OneTimeKeyboard = true,
                ResizeKeyboard = false
            };

            var from = update.Message.From;
            var text = update.Message.Text;
            var contact = update.Message.Contact;


            //محل قرار گیری کد هایی که نیاز به دانستن شماره اکشن ندارد\\
            if (text != null)
            {
                #region /start + PID


                if (text.Contains("/start "))
                {
                    long id = Convert.ToInt64(text.Substring(7));
                    string t;

                    var ProductAds = await Task.Run(() => un.gADsRepository.GetById(id));
                    var SubProduct = await Task.Run(() => un.gSubProductRepository.Get(p => p.ProductID == ProductAds.ProductID && p.Count != 0));
                    
                    bot.MakeRequestAsync(new SendMessage(
                            update.Message.Chat.Id,
                            "با سلام \n سیستم در حال پردازش درخواست شما میباشد . \n  لطفا شکیبا باشید ...")).Wait();
                    ProductAds.StCount++;
                    un.gADsRepository.Save();

                    bot.MakeRequestAsync(new SendMessage(
                            update.Message.Chat.Id,
                            "\U0000270Fجهت کسب اطلاعات ومشاهده دیگر تصاویر(در صورت وجود) شماره تلفن همراه خود را وارد کنید ...\n" +
                            "*\U000026A0این شماره موبایل برای ادامه خرید مورد استفاده قرار میگیرد*" +
                            "\n \U000026F3 مرحله 1 از 3")
                    {
                        ParseMode = SendMessage.ParseModeEnum.Markdown
                    }).Wait();

                    #region set ChatAction

                    BM.SetChatAction(update.Message.Chat.Id, 1);

                    #endregion

                    #region Save in DB

                    await BM.UserInfoSet(update.Message.Chat.Id, id);

                    #endregion

                    #region Delet 14 Day ago Content From DB

                    BM.DelContent();

                    #endregion

                    return Ok();

                }
}

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • چهارشنبه 11 مرداد 1396
  • 18:39

متد Save در repository !!؟

Repository در UnitOfwork ؟!!

کاربر سایت

محمد قاری

عضویت از 1395/02/07

  • چهارشنبه 11 مرداد 1396
  • 18:44

متد Save خودم اضافه کردم از قسمتی از دیگر متد ها. و در تمام قسمت پروژه هام ازش استفاده میکنم وو مشکلی هم نداره

استفاده از Repository در UnitOfWork از آموزه های استاد مدائنی عزیز است

لبته منظور از (g) اول متد ها Generic است

کاربر سایت

محمد قاری

عضویت از 1395/02/07

  • چهارشنبه 11 مرداد 1396
  • 18:51

مشکل من اجرا نشدن متد ها است از سمت کنترلر

اصلا وارد متد نمیشود

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • چهارشنبه 11 مرداد 1396
  • 18:52

با break point آن را Trace کرده اید ؟

کاربر سایت

محمد قاری

عضویت از 1395/02/07

  • چهارشنبه 11 مرداد 1396
  • 18:58

تلگرام به سایت دارای SSL فقط اطلاعات رو ارسال میکنه 

و من زمانی میتونم کد را امتحان کنم که بر روی هاست آپلود شده باشد که نمیدونم میشه آیا.

آیا میشود طور دیگه ای کد رو trace کرد؟

کاربر سایت

محمد قاری

عضویت از 1395/02/07

  • چهارشنبه 11 مرداد 1396
  • 19:00

من حتی برای امتحان کد ها محتویات کد مربط رو کامنت کردم و کدی به صورت تست نوشتم و آن هم اجرا نشد

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)