| using UnityEngine;  | 
| using UnityEngine.UI;  | 
| using EnhancedUI.EnhancedScroller;  | 
| using System;  | 
|   | 
| namespace vnxbqy.UI  | 
| {  | 
|     public class FlashSaleTimeCell : ScrollerUI  | 
|     {  | 
|         [SerializeField] Text remainText;  | 
|         [SerializeField] Button saleTimeBtn;  | 
|         [SerializeField] GameObject unSelectImg;  | 
|         [SerializeField] GameObject selectImg;  | 
|   | 
|         FlashRushToBuyModel rushToBuyModel { get { return ModelCenter.Instance.GetModel<FlashRushToBuyModel>(); } }  | 
|         OperationFlashRushToBuy operation;  | 
|         int dayIndex = -1;  | 
|         int timeIndex = -1;  | 
|         private void Awake()  | 
|         {  | 
|             saleTimeBtn.AddListener(() =>  | 
|             {  | 
|                 rushToBuyModel.UpdateSelectFlashSaleTime(dayIndex, timeIndex);  | 
|             });  | 
|         }  | 
|         private void OnEnable()  | 
|         {  | 
|             GlobalTimeEvent.Instance.secondEvent += UpdateBuyState;  | 
|         }  | 
|         private void OnDisable()  | 
|         {  | 
|             GlobalTimeEvent.Instance.secondEvent -= UpdateBuyState;  | 
|         }  | 
|         public override void Refresh(CellView cell)  | 
|         {  | 
|             operation = rushToBuyModel.GetOperationFlashRushToBuy();  | 
|             dayIndex = -1;  | 
|             timeIndex = -1;  | 
|             if (operation == null) return;  | 
|   | 
|             dayIndex = cell.index/100;  | 
|             timeIndex = cell.index % 100;  | 
|             if(dayIndex == rushToBuyModel.presentFlashShop.dayIndex   | 
|                 && timeIndex == rushToBuyModel.presentFlashShop.timeIndex)  | 
|             {  | 
|                 selectImg.SetActive(true);  | 
|                 unSelectImg.SetActive(false);  | 
|             }  | 
|             else  | 
|             {  | 
|                 selectImg.SetActive(false);  | 
|                 unSelectImg.SetActive(true);  | 
|             }  | 
|             UpdateBuyState();  | 
|         }  | 
|   | 
|         public void UpdateBuyState()  | 
|         {  | 
|             if (operation == null || timeIndex == -1) return;  | 
|   | 
|             int seconds = 0;  | 
|             OperationTime operationTime = operation.times[timeIndex];  | 
|             int buyState = operation.GetBuyTimeState(TimeUtility.ServerNow, dayIndex, timeIndex, out seconds);  | 
|             var operationDate = operation.startDate.AddDays(dayIndex);  | 
|             switch (buyState)  | 
|             {  | 
|                 case -1:  | 
|                     string timeStr = "";  | 
|                     if(seconds > 7200)  | 
|                     {  | 
|                         timeStr = operation.ToDisplayBuyTime(operationDate.month, operationDate.day, operationTime.startHour, operationTime.startMinute);  | 
|                         remainText.text = Language.Get("FlashRushToBuy106", timeStr);  | 
|                     }  | 
|                     else  | 
|                     {  | 
|                         timeStr = TimeUtility.SecondsToHMS(seconds);  | 
|                         remainText.text = Language.Get("FlashRushToBuy108", timeStr);  | 
|                     }  | 
|                     break;  | 
|                 case 0:  | 
|                     remainText.text = Language.Get("FlashRushToBuy105", TimeUtility.SecondsToHMS(seconds));  | 
|                     break;  | 
|                 case 1:  | 
|                     rushToBuyModel.PresentFlashShopActivityClose();  | 
|                     break;  | 
|             }  | 
|         }  | 
|     }  | 
| }  |