public HttpResponseMessage PostCheckIn([FromBody] VisitorEntry value) { String resp = "{\"Response\":\"Undefine\"}"; var ctx = new NestinDBEntities(); try { var context = new NestinDBEntities(); VisitorRequest guest = (from g in context.VisitorRequests where g.id == value.RequestId select g).FirstOrDefault(); guest.ActualInTime = DateTime.Now.ToUniversalTime(); context.SaveChanges(); Message message = new Message(); message.Topic = "Visitor"; message.SocietyID = value.SocietyId; message.TextMessage = "Your guest " + value.VisitorName + " has arrived."; //VisitorNotification visitorNotification = new VisitorNotification(context, value.HostMobile); Notifications msg = new Notifications(context); msg.Notify(Notifications.TO.User, value.ResID, message); resp = "{\"Response\":\"OK\"}"; } catch (Exception ex) { resp = "{\"Response\":\"Fail\"}"; } var response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(resp, System.Text.Encoding.UTF8, "application/json"); return(response); }
public async Task <ActionResult> VisitorDisplay(int key) { using (VisitorEntryDataProvider visitorDP = new VisitorEntryDataProvider()) { VisitorEntry data = await visitorDP.GetItemAsync(key); if (data == null) { throw new Error(this.__ResStr("notFound", "Visitor Entry {0} not found."), key); } DisplayModel model = new DisplayModel(); model.SetData(data); Module.Title = this.__ResStr("modTitle", "Visitor Entry {0}", key); return(View(model)); } }
public async Task AddGeoLocationAsync(List <string> errorList) { using (VisitorEntryDataProvider visitorEntryDP = new VisitorEntryDataProvider()) { DateTime startTime = DateTime.UtcNow; int overall = 0; List <DataProviderFilterInfo> filters = null; filters = DataProviderFilterInfo.Join(filters, new DataProviderFilterInfo { Field = nameof(VisitorEntry.ContinentCode), Operator = "==", Value = VisitorEntry.Unknown }); filters = DataProviderFilterInfo.Join(filters, new DataProviderFilterInfo { Field = nameof(VisitorEntry.AccessDateTime), Operator = "<", Value = startTime }); GeoLocation geoLocation = new GeoLocation(); int maxRequest = geoLocation.GetRemainingRequests(); for (; maxRequest > 0; --maxRequest) { DataProviderGetRecords <VisitorEntry> list = await visitorEntryDP.GetItemsAsync(0, 1, null, filters); if (list.Data.Count == 0) { break; } VisitorEntry geoData = list.Data.First(); GeoLocation.UserInfo userInfo = await geoLocation.GetUserInfoAsync(geoData.IPAddress); if (!string.IsNullOrWhiteSpace(userInfo.ContinentCode)) { geoData.City = userInfo.City; geoData.ContinentCode = userInfo.ContinentCode; geoData.CountryCode = userInfo.CountryCode; geoData.RegionCode = userInfo.RegionCode; } else { geoData.City = ""; geoData.ContinentCode = ""; geoData.CountryCode = ""; geoData.RegionCode = ""; } await visitorEntryDP.UpdateSameIPAddressesAsync(geoData); ++overall; } Logging.AddLog($"Updated {overall} visitor entries"); } }
public BrowseItem(VisitorsModule module, VisitorEntry data) { Module = module; ObjectSupport.CopyData(data, this); }
public void SetData(VisitorEntry data) { ObjectSupport.CopyData(data, this); }
public HttpResponseMessage Post([FromBody] VisitorEntry value) { String resp = "{\"Response\":\"Undefine\"}"; var ctx = new NestinDBEntities(); using (var dbContextTransaction = ctx.Database.BeginTransaction()) { try { Random r = new Random(); var code = 0; do { code = r.Next(1000, 9999); } while (IsCodeInUse(code.ToString())); String mobile = value.VisitorMobile; if (mobile.Length > 10) { mobile = mobile.Substring(mobile.Length - 10, mobile.Length); } if (value.VisitorId == 0) { VisitorDetail guest = new VisitorDetail(); guest.VisitorMobileNo = mobile; guest.VisitorName = value.VisitorName; guest.VisitorAddress = value.VisitorAddress; guest.SocietyId = value.SocietyId; guest.VisitorImage = value.VisitorImage; var c = ctx.VisitorDetails; c.Add(guest); ctx.SaveChanges(); value.VisitorId = guest.id; } if (value.VisitorId > 0) { ctx.VisitorRequests.Add(new VisitorRequest { VisitorId = value.VisitorId, VisitPurpose = value.VisitPurpose, StartTime = DateTime.ParseExact(value.StartTime, "yyyy-MM-ddTHH:mm:ss.SSSZ", System.Globalization.CultureInfo.InvariantCulture), EndTime = DateTime.ParseExact(value.EndTime, "yyyy-MM-ddTHH:mm:ss.SSSZ", System.Globalization.CultureInfo.InvariantCulture), SecurityCode = code.ToString(), SocietyId = value.SocietyId, ResId = value.ResID, Flat = value.FlatNumber }); } ctx.SaveChanges(); dbContextTransaction.Commit(); var strMessage = "Code for Entry in Flat : " + value.FlatNumber + " is " + code.ToString(); VisitorNotification visitorNotification = new VisitorNotification(ctx, value.HostMobile); var result = visitorNotification.NotifyVisitor(strMessage, value.VisitorMobile); resp = "{\"Response\":\"Ok\"}"; } //Exception ex catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Log.log("api/Profile Failed to Add User : Property-" + validationError.PropertyName + " Error- " + validationError.ErrorMessage + " At " + DateTime.Now.ToString()); } } dbContextTransaction.Rollback(); resp = "{\"Response\":\"Fail\"}"; } catch (Exception ex) { Log.log("api/Profile Failed to Add User Error- " + ex.Message + " At " + DateTime.Now.ToString()); dbContextTransaction.Rollback(); resp = "{\"Response\":\"Fail\"}"; } } var response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(resp, System.Text.Encoding.UTF8, "application/json"); return(response); }