public async Task <IHttpActionResult> CreateEvent(BepEventDTO bepEventDTO) { //date check working DateTime date = (DateTime.Today.AddMinutes(330)).Date; var c = ((bepEventDTO.Date).Date).CompareTo(date); if (c == -1) { return(BadRequest("please give valid dates given date is earlier than todays date")); } //ends here //check singular event or not var count = context.BepEvents.Where(x => (x.OrgId == bepEventDTO.OrgId)); foreach (BepEvent a in count) { if ((a.Date).Date.Equals((bepEventDTO.Date).Date)) { return(BadRequest(" An event posted by you is already scheduled on the given date")); } } // BepOrganization organization = context.BepOrganizations.SingleOrDefault(x => x.Id == bepEventDTO.OrgId); List <BepDonor> offlineDonorList = context.BepDonors.Where(x => (x.OrgId == organization.Id && x.OnlineStatus == false)).ToList(); double kms = 5; double ulat = organization.LocationLat + (kms / 110.574), llat = organization.LocationLat - (kms / 110.574); double longdist = Math.Cos((Math.PI * organization.LocationLat) / 180) * 111.320; double ulng = organization.LocationLong + (kms / longdist), llng = organization.LocationLong - (kms / longdist); List <BepDonor> onlineDonorList = context.BepDonors.Where(x => ((x.OrgId == organization.Id || (x.LocationLat <ulat && x.LocationLat> llat && x.LocationLong <ulng && x.LocationLong> llng)) && x.OnlineStatus == true)).ToList(); List <BepDonor> donorList = offlineDonorList; donorList.AddRange(onlineDonorList); //Send Mail to offline donor with event details foreach (BepDonor donor in donorList) { //Send mail with get query of the event id that will display the event details on a webapp based on the response string mail = "<!DOCTYPE html><html><head><style>table, th, td {border:1px solid black;border-collapse:collapse;}th, td {padding:5px;}</style></head><body><div style=\"border:5px solid #800000; padding:10px\"><div style=\"background-color:#800000;padding:20px\"><h1 style=\"color:white \">Welcome!</h1></div><p> dear" + " " + donor.Name + ",</p><p> you are cordially invited to this event.please grace us with the your presence. The details are as given below.</br>Thank you.</p><table style=\"width:100%\"><tbody><tr><td>organization</td><td>" + bepEventDTO.OrgName + "</td></tr><tr><td>venue</td><td>" + bepEventDTO.Venue + "</td></tr><tr><td>about</td><td>" + bepEventDTO.About + "</td></tr><tr><td>date</td><td>" + (bepEventDTO.Date).ToString() + "</td></tr><tr><td>phone</td><td>" + bepEventDTO.OrgPhone + "</td></tr><tr><td>email</td><td>" + bepEventDTO.OrgEmail + "</td></tr></tbody></table></div></body></html>"; Sender.SendMail(donor.Email, "Event details", mail); } //End send mail code foreach (BepDonor donor in onlineDonorList) { //Send push message ; } BepEvent bepEvent = AutoMapper.Mapper.Map <BepEvent>(bepEventDTO); BepEvent current = await InsertAsync(bepEvent); return(CreatedAtRoute("CreateEvent", new { id = current.Id }, AutoMapper.Mapper.Map <BepEventDTO>(current))); }
public async Task <IHttpActionResult> ImportDonorData(BepDonor donor) { // Does the donor data exist? var count = context.BepDonors.Where(x => x.Phone == donor.Phone).Count(); if (count > 0) { return(BadRequest("Phone number already registered!")); } count = context.BepDonors.Where(x => x.Email == donor.Email).Count(); if (count > 0) { return(BadRequest("Email Id already registered!")); } if (!string.IsNullOrEmpty(donor.BloodGroup)) { switch (donor.BloodGroup) { case "A+": donor.ReceiverGroups = ",A+,AB+"; break; case "O+": donor.ReceiverGroups = ",A+,AB+,O+,B+"; break; case "B+": donor.ReceiverGroups = ",B+,AB+"; break; case "AB+": donor.ReceiverGroups = ",AB+"; break; case "A-": donor.ReceiverGroups = ",A+,AB+,A-,AB-"; break; case "O-": donor.ReceiverGroups = ",A+,AB+,O+,B+,A-,AB-,O-,B-"; break; case "B-": donor.ReceiverGroups = ",B+,AB+,B-,AB-"; break; case "AB-": donor.ReceiverGroups = ",AB+,AB-"; break; } } donor.Subscribed = true; donor.EmergencyAvailability = false; donor.OnlineStatus = false; donor.Activated = false; BepDonor current = await InsertAsync(donor); BepOrganization org = context.BepOrganizations.Single(x => x.Id == current.OrgId); //Send Mail to offline donor with link to download the application Sender.SendMail(donor.Email, "please download our APP", "<!DOCTYPE html><html><head></head><body><p>dear " + donor.Name + ",</br>you have been invited to register to our application by " + org.Name + " from " + org.Locality + ".</br>please download our app and register yourself.Join us and increase our network of blood donors.</br>thank you</p><p>click as per your device</br><ul><li><a href=\"#\">windows phone</a></li><li><a href=\"#\">windows pc</a></li><li><a href=\"#\">android</a></li><li><a href=\"#\">ios</a></li></ul></p></body></html>"); //End send mail code return(Ok("Offline Donor registered successfully!")); }