Example #1
0
        public FileResult DownloadAttachment(string url, string filename)
        {
            var content  = CloudTableRepository.DownloadAttachment(url);
            var response = File(content, "application/octet-stream", filename);

            return(response);
        }
Example #2
0
        public JsonResult Attachments(string entity, string entityId)
        {
            var attachment = CloudTableRepository.GetAttachments(entity, entityId);
            var result     = new {
                Attachment         = attachment ?? new AttachmentDTO(),
                AttachmentTypeList = LookupRepository.AttachmentTypeList.FirstOrDefault(x => x.Entity == entity)?.Types
            };

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Example #3
0
 public JsonResult Attachments(string entity, string entityId, string attachmentType, HttpPostedFileBase file)
 {
     CloudTableRepository.AddAttachment(entity, entityId, attachmentType, file);
     return(Json(null, JsonRequestBehavior.AllowGet));
 }
Example #4
0
 public JsonResult Notes(string entity, string entityId, string content)
 {
     CloudTableRepository.AddNote(entity, entityId, content);
     return(Json(null, JsonRequestBehavior.AllowGet));
 }
Example #5
0
        public JsonResult Notes(string entity, string entityId)
        {
            var result = CloudTableRepository.GetNotes(entity, entityId);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Example #6
0
        public JsonResult AuditHistory(string entity, string entityId)
        {
            var result = CloudTableRepository.GetAuditData(entity, entityId);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Example #7
0
 public RestaurantFunctions(CloudTableRepository cloudTableRepository)
 {
     _cloudTableRepository = cloudTableRepository;
 }
        public ActionResult SocialSignIn(string provider = "None")
        {
            string  recordId = "";
            dynamic user     = null;

            //Addtional check in case client not registered properly.
            //only happens when project throws an exception or restarted.
            if (!OAuthClientFactory.IsFacebookRegistered)
            {
                OAuthClientFactory.RegisterFacebookClient(_sessionContext.CurrentSiteConfig.SocialSettings.FacebookApiKey, _sessionContext.CurrentSiteConfig.SocialSettings.FacebookApiSecret, _sessionContext.CurrentSiteConfig.SocialSettings.FacebookUrl);
            }
            if (!OAuthClientFactory.IsGoogleRegistered)
            {
                OAuthClientFactory.RegisterGoogleClient(_sessionContext.CurrentSiteConfig.SocialSettings.GooglePlusApiKey, _sessionContext.CurrentSiteConfig.SocialSettings.GooglePlusApiSecret, _sessionContext.CurrentSiteConfig.SocialSettings.GooglePlusUrl);
            }
            if (!OAuthClientFactory.IsTwitterRegisterd)
            {
                OAuthClientFactory.RegisterTwitterClient(_sessionContext.CurrentSiteConfig.SocialSettings.TwitterApiKey, _sessionContext.CurrentSiteConfig.SocialSettings.TwitterApiSecret, _sessionContext.CurrentSiteConfig.SocialSettings.TwitterUrl);
            }

            var response = _socialService.SocialSignIn(provider);

            if (response != null)
            {
                var obj = JObject.Parse(response.JsonResponse);
                switch (response.OAuthClient)
                {
                case OAuthClient.Twitter:
                {
                    user = new TwitterResponse()
                    {
                        Source    = Enum.GetName(typeof(OAuthClient), response.OAuthClient),
                        FullName  = Convert.ToString(obj["name"]),
                        UserName  = Convert.ToString(obj["screen_name"]),
                        SocialId  = Convert.ToString(obj["id"]),
                        Email     = Convert.ToString(obj["email"]),
                        Location  = Convert.ToString(obj["location"]),
                        FirstName = Convert.ToString(obj["name"]).Split(' ')[0],
                        LastName  = Convert.ToString(obj["name"]).Split(' ')[1],
                    };

                    var siteUser = _customerRepository.GetExistingUser(user.Email);
                    if (siteUser.Result.Count == 0)         //user not exits, new user
                    {
                        CustomerModel customer = new CustomerModel()
                        {
                            Email        = user.Email,
                            FirstName    = user.FirstName,
                            LastName     = user.LastName,
                            IsRegistered = false
                        };

                        var result = _customerRepository.Register(customer);
                        recordId      = result.Result.RecordId;
                        user.RecordId = recordId;

                        CloudTableRepository _cloudRepository = new CloudTableRepository();
                        var table = _cloudRepository.CreateTable("SocialUsers");
                        _cloudRepository.InsertUser(table, user); //insert entry in azure table
                    }
                    else                                          //existing user
                    {
                        recordId = Convert.ToString(siteUser.Result[0].UserId);
                    }
                }
                break;

                case OAuthClient.Facebook:
                {
                    user = new FacebookResponse()
                    {
                        Source      = Enum.GetName(typeof(OAuthClient), response.OAuthClient),
                        FullName    = Convert.ToString(obj["name"]),
                        FirstName   = Convert.ToString(obj["first_name"]),
                        LastName    = Convert.ToString(obj["last_name"]),
                        SocialId    = Convert.ToString(obj["id"]),
                        Email       = Convert.ToString(obj["email"]),
                        Gender      = Convert.ToString(obj["gender"]),
                        Location    = Convert.ToString(obj["location"]),
                        HomeTown    = Convert.ToString(obj["hometown"]),
                        DateOfBirth = Convert.ToString(obj["birthday"])
                    };

                    var siteUser = _customerRepository.GetExistingUser(user.Email);
                    if (siteUser.Result.Count == 0)         //user not exits, new user
                    {
                        CustomerModel customer = new CustomerModel()
                        {
                            Email        = user.Email,
                            FirstName    = user.FirstName,
                            LastName     = user.LastName,
                            Gender       = user.Gender,
                            IsRegistered = false
                        };

                        var result = _customerRepository.Register(customer);
                        recordId      = result.Result.RecordId;
                        user.RecordId = recordId;

                        CloudTableRepository _cloudRepository = new CloudTableRepository();
                        var table = _cloudRepository.CreateTable("SocialUsers");
                        _cloudRepository.InsertUser(table, user);
                    }
                    else         //existing user
                    {
                        recordId = Convert.ToString(siteUser.Result[0].UserId);
                    }
                }
                break;

                case OAuthClient.Google:
                {
                    user = new GoogleResponse()
                    {
                        Source    = Enum.GetName(typeof(OAuthClient), response.OAuthClient),
                        SocialId  = Convert.ToString(obj["id"]),
                        FullName  = Convert.ToString(obj["name"]),
                        FirstName = Convert.ToString(obj["given_name"]),
                        LastName  = Convert.ToString(obj["family_name"]),
                        Email     = Convert.ToString(obj["email"]),
                    };

                    var siteUser = _customerRepository.GetExistingUser(user.Email);
                    if (siteUser.Result.Count == 0)         //user not exits, new user
                    {
                        CustomerModel customer = new CustomerModel()
                        {
                            Email        = user.Email,
                            FirstName    = user.FirstName,
                            LastName     = user.LastName,
                            IsRegistered = false
                        };

                        var result = _customerRepository.Register(customer);
                        recordId      = result.Result.RecordId;
                        user.RecordId = recordId;

                        CloudTableRepository _cloudRepository = new CloudTableRepository();
                        var table = _cloudRepository.CreateTable("SocialUsers");
                        _cloudRepository.InsertUser(table, user);
                    }
                    else         //existing user
                    {
                        recordId = Convert.ToString(siteUser.Result[0].UserId);
                    }
                }
                break;

                default:
                    break;
                }

                var results = _authenticationService.SocialLogin(recordId);
                if (results == null)
                {
                    return(JsonValidationError());
                }
                else
                {
                    return(Redirect("/"));
                }
            }
            return(null);
        }