예제 #1
0
        void GetVisitas(TB_USUARIO userInfo)
        {
            var visitasIDs = new List <string>();

            if (model.db.HasVisitasInDate(DateTime.Now, userInfo.ID))
            {
                model.dbCache.UpdateCache(Cache.VISITAS_ATUALIZADAS, null, userInfo.ID);
            }
            try
            {
                var visitaCon = new PDVsRestCon();
                var visitas   = GetRest("api/mobile/funcionarios/" + userInfo.ID + "/visitas/" + DateTime.Now.ToString("yyyy-MM-dd"),
                                        Cache.VISITAS_ATUALIZADAS, userInfo, 3);
                GetProdutos(userInfo);
                GetSchemasForms(userInfo);
                var request = JsonConvert.DeserializeObject <PDVsRestModel>(visitas).result;
                foreach (PdvRestModel item in request)
                {
                    if (item.formularios.Count > 0)
                    {
                        visitasIDs.Add(item.id);
                        var isNewPDV = model.db.InsertVisitas(item.id,
                                                              DateTime.Now,
                                                              visitaCon.GetGEO_PT(item),
                                                              item.lat, item.lng,
                                                              item.formularios,
                                                              userInfo.ID);
                        if (isNewPDV)
                        {
                            idsPdvsNovos.Add(visitaCon.GetGEO_PT(item));
                        }
                    }
                }
            }
            catch (Exception x)
            {
                if (!(x is NotModifiedException || x is TaskCanceledException))
                {
                    exceptionMessage = x.Message;
                }
                else if (x is InvalidLoginException)
                {
                    exceptionMessage = x.Message;
                    invalidException = (InvalidLoginException)x;
                    throw x;
                }
            }
            model.db.ConluirVisitasNotInService(visitasIDs, userInfo.ID);
        }
예제 #2
0
        void SendVisitaAtualizada(TB_USUARIO userInfo)
        {
            var controllerVisitasAtualizadas = new PDVsRestCon();
            var pdvsIniciados  = model.db.SelectPDVs(StatusAPI.INICIADO, userInfo.ID);
            var pdvsConcluidos = model.db.SelectPDVs(StatusAPI.CONCLUIDO, userInfo.ID);

            if (pdvsIniciados != null)
            {
                foreach (var pdvIniciado in pdvsIniciados)
                {
                    var objSerialized = controllerVisitasAtualizadas.GetSerializeAndamento(pdvIniciado);
                    PutRest("api/mobile/visitas/" + pdvIniciado.ID + "/iniciar", objSerialized, userInfo, 3);
                    model.db.AtualizaVisitaNotificacao(pdvIniciado.ID);
                }
            }
            if (pdvsConcluidos != null)
            {
                foreach (var pdvIniciado in pdvsConcluidos)
                {
                    PutRest("api/mobile/visitas/" + pdvIniciado.ID + "/concluir", userInfo, 3);
                    model.db.AtualizaVisitaNotificacaoConcluido(pdvIniciado.ID);
                }
            }
        }